ruby-bullet 0.0.2-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (943) hide show
  1. data/INSTALL.md +22 -0
  2. data/LICENSE +23 -0
  3. data/README.md +41 -0
  4. data/Rakefile +131 -0
  5. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btAxisSweep3.i +30 -0
  6. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btBroadphaseInterface.i +8 -0
  7. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btBroadphaseProxy.i +8 -0
  8. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.i +8 -0
  9. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btDbvt.i +10 -0
  10. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btDbvtBroadphase.i +8 -0
  11. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btDispatcher.i +8 -0
  12. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.i +10 -0
  13. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btOverlappingPairCache.i +8 -0
  14. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.i +8 -0
  15. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btQuantizedBvh.i +8 -0
  16. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/btSimpleBroadphase.i +8 -0
  17. data/bindings/bullet/interface/BulletCollision/BroadphaseCollision/local_btAxisSweep3Internal.h +191 -0
  18. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/SphereTriangleDetector.i +8 -0
  19. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.i +8 -0
  20. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.i +8 -0
  21. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.i +8 -0
  22. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btBoxBoxDetector.i +8 -0
  23. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionConfiguration.i +21 -0
  24. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionCreateFunc.i +8 -0
  25. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionDispatcher.i +24 -0
  26. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionObject.i +8 -0
  27. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionWorld.i +82 -0
  28. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.i +8 -0
  29. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.i +8 -0
  30. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.i +8 -0
  31. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.i +8 -0
  32. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.i +8 -0
  33. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.i +8 -0
  34. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.i +8 -0
  35. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btGhostObject.i +8 -0
  36. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btInternalEdgeUtility.i +8 -0
  37. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btManifoldResult.i +8 -0
  38. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btSimulationIslandManager.i +8 -0
  39. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.i +8 -0
  40. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.i +8 -0
  41. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.i +8 -0
  42. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btUnionFind.i +10 -0
  43. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btBox2dShape.i +8 -0
  44. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btBoxShape.i +22 -0
  45. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.i +8 -0
  46. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btCapsuleShape.i +8 -0
  47. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btCollisionMargin.i +8 -0
  48. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btCollisionShape.i +8 -0
  49. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btCompoundShape.i +8 -0
  50. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConcaveShape.i +8 -0
  51. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConeShape.i +8 -0
  52. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvex2dShape.i +8 -0
  53. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvexHullShape.i +8 -0
  54. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvexInternalShape.i +8 -0
  55. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvexPointCloudShape.i +8 -0
  56. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvexPolyhedron.i +8 -0
  57. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvexShape.i +8 -0
  58. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.i +8 -0
  59. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btCylinderShape.i +8 -0
  60. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btEmptyShape.i +8 -0
  61. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.i +8 -0
  62. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btMaterial.i +8 -0
  63. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btMinkowskiSumShape.i +8 -0
  64. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btMultiSphereShape.i +8 -0
  65. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.i +8 -0
  66. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btOptimizedBvh.i +8 -0
  67. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btPolyhedralConvexShape.i +8 -0
  68. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.i +8 -0
  69. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btShapeHull.i +8 -0
  70. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btSphereShape.i +8 -0
  71. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btStaticPlaneShape.i +8 -0
  72. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btStridingMeshInterface.i +8 -0
  73. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTetrahedronShape.i +8 -0
  74. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleBuffer.i +8 -0
  75. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleCallback.i +8 -0
  76. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.i +8 -0
  77. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.i +8 -0
  78. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleInfoMap.i +8 -0
  79. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleMeshShape.i +8 -0
  80. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btTriangleShape.i +8 -0
  81. data/bindings/bullet/interface/BulletCollision/CollisionShapes/btUniformScalingShape.i +8 -0
  82. data/bindings/bullet/interface/BulletCollision/Gimpact/btBoxCollision.i +8 -0
  83. data/bindings/bullet/interface/BulletCollision/Gimpact/btClipPolygon.i +8 -0
  84. data/bindings/bullet/interface/BulletCollision/Gimpact/btContactProcessing.i +8 -0
  85. data/bindings/bullet/interface/BulletCollision/Gimpact/btGImpactBvh.i +8 -0
  86. data/bindings/bullet/interface/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.i +8 -0
  87. data/bindings/bullet/interface/BulletCollision/Gimpact/btGImpactMassUtil.i +8 -0
  88. data/bindings/bullet/interface/BulletCollision/Gimpact/btGImpactQuantizedBvh.i +8 -0
  89. data/bindings/bullet/interface/BulletCollision/Gimpact/btGImpactShape.i +8 -0
  90. data/bindings/bullet/interface/BulletCollision/Gimpact/btGenericPoolAllocator.i +11 -0
  91. data/bindings/bullet/interface/BulletCollision/Gimpact/btGeometryOperations.i +8 -0
  92. data/bindings/bullet/interface/BulletCollision/Gimpact/btQuantization.i +8 -0
  93. data/bindings/bullet/interface/BulletCollision/Gimpact/btTriangleShapeEx.i +8 -0
  94. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.i +8 -0
  95. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btConvexCast.i +8 -0
  96. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.i +8 -0
  97. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.i +11 -0
  98. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.i +8 -0
  99. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btGjkEpa2.i +8 -0
  100. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.i +8 -0
  101. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.i +8 -0
  102. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btManifoldPoint.i +8 -0
  103. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.i +8 -0
  104. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btPersistentManifold.i +8 -0
  105. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btPointCollector.i +8 -0
  106. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.i +8 -0
  107. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btRaycastCallback.i +8 -0
  108. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.i +8 -0
  109. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.i +8 -0
  110. data/bindings/bullet/interface/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.i +8 -0
  111. data/bindings/bullet/interface/BulletDynamics/Character/btCharacterControllerInterface.i +8 -0
  112. data/bindings/bullet/interface/BulletDynamics/Character/btKinematicCharacterController.i +8 -0
  113. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btConeTwistConstraint.i +8 -0
  114. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btConstraintSolver.i +8 -0
  115. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btContactConstraint.i +8 -0
  116. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btContactSolverInfo.i +8 -0
  117. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.i +8 -0
  118. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.i +8 -0
  119. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btHinge2Constraint.i +8 -0
  120. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btHingeConstraint.i +8 -0
  121. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btJacobianEntry.i +8 -0
  122. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.i +8 -0
  123. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.i +21 -0
  124. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btSliderConstraint.i +8 -0
  125. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.i +8 -0
  126. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btSolverBody.i +8 -0
  127. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btSolverConstraint.i +8 -0
  128. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btTypedConstraint.i +8 -0
  129. data/bindings/bullet/interface/BulletDynamics/ConstraintSolver/btUniversalConstraint.i +8 -0
  130. data/bindings/bullet/interface/BulletDynamics/Dynamics/btActionInterface.i +8 -0
  131. data/bindings/bullet/interface/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.i +23 -0
  132. data/bindings/bullet/interface/BulletDynamics/Dynamics/btDynamicsWorld.i +37 -0
  133. data/bindings/bullet/interface/BulletDynamics/Dynamics/btRigidBody.i +20 -0
  134. data/bindings/bullet/interface/BulletDynamics/Dynamics/btSimpleDynamicsWorld.i +8 -0
  135. data/bindings/bullet/interface/BulletDynamics/Vehicle/btRaycastVehicle.i +12 -0
  136. data/bindings/bullet/interface/BulletDynamics/Vehicle/btVehicleRaycaster.i +8 -0
  137. data/bindings/bullet/interface/BulletDynamics/Vehicle/btWheelInfo.i +8 -0
  138. data/bindings/bullet/interface/BulletSoftBody/btDefaultSoftBodySolver.i +8 -0
  139. data/bindings/bullet/interface/BulletSoftBody/btSoftBody.i +8 -0
  140. data/bindings/bullet/interface/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.i +8 -0
  141. data/bindings/bullet/interface/BulletSoftBody/btSoftBodyData.i +8 -0
  142. data/bindings/bullet/interface/BulletSoftBody/btSoftBodyHelpers.i +8 -0
  143. data/bindings/bullet/interface/BulletSoftBody/btSoftBodyInternals.i +8 -0
  144. data/bindings/bullet/interface/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.i +8 -0
  145. data/bindings/bullet/interface/BulletSoftBody/btSoftBodySolverVertexBuffer.i +8 -0
  146. data/bindings/bullet/interface/BulletSoftBody/btSoftBodySolvers.i +8 -0
  147. data/bindings/bullet/interface/BulletSoftBody/btSoftRigidCollisionAlgorithm.i +8 -0
  148. data/bindings/bullet/interface/BulletSoftBody/btSoftRigidDynamicsWorld.i +8 -0
  149. data/bindings/bullet/interface/BulletSoftBody/btSoftSoftCollisionAlgorithm.i +8 -0
  150. data/bindings/bullet/interface/BulletSoftBody/btSparseSDF.i +8 -0
  151. data/bindings/bullet/interface/LinearMath/btAabbUtil2.i +8 -0
  152. data/bindings/bullet/interface/LinearMath/btAlignedAllocator.i +8 -0
  153. data/bindings/bullet/interface/LinearMath/btAlignedObjectArray.i +8 -0
  154. data/bindings/bullet/interface/LinearMath/btConvexHull.i +8 -0
  155. data/bindings/bullet/interface/LinearMath/btConvexHullComputer.i +8 -0
  156. data/bindings/bullet/interface/LinearMath/btDefaultMotionState.i +10 -0
  157. data/bindings/bullet/interface/LinearMath/btGeometryUtil.i +10 -0
  158. data/bindings/bullet/interface/LinearMath/btGrahamScan2dConvexHull.i +8 -0
  159. data/bindings/bullet/interface/LinearMath/btHashMap.i +8 -0
  160. data/bindings/bullet/interface/LinearMath/btIDebugDraw.i +10 -0
  161. data/bindings/bullet/interface/LinearMath/btList.i +8 -0
  162. data/bindings/bullet/interface/LinearMath/btMatrix3x3.i +8 -0
  163. data/bindings/bullet/interface/LinearMath/btMinMax.i +8 -0
  164. data/bindings/bullet/interface/LinearMath/btMotionState.i +10 -0
  165. data/bindings/bullet/interface/LinearMath/btPoolAllocator.i +10 -0
  166. data/bindings/bullet/interface/LinearMath/btQuadWord.i +8 -0
  167. data/bindings/bullet/interface/LinearMath/btQuaternion.i +60 -0
  168. data/bindings/bullet/interface/LinearMath/btQuickprof.i +10 -0
  169. data/bindings/bullet/interface/LinearMath/btRandom.i +8 -0
  170. data/bindings/bullet/interface/LinearMath/btScalar.i +8 -0
  171. data/bindings/bullet/interface/LinearMath/btSerializer.i +10 -0
  172. data/bindings/bullet/interface/LinearMath/btStackAlloc.i +10 -0
  173. data/bindings/bullet/interface/LinearMath/btTransform.i +8 -0
  174. data/bindings/bullet/interface/LinearMath/btTransformUtil.i +8 -0
  175. data/bindings/bullet/interface/LinearMath/btVector3.i +42 -0
  176. data/bindings/bullet/interface/Makefile +19 -0
  177. data/bindings/bullet/interface/bullet.i +9 -0
  178. data/bindings/bullet/interface/bullet_all.i +186 -0
  179. data/bindings/bullet/interface/bullet_wrap.cpp +194161 -0
  180. data/bindings/bullet/interface/bullet_wrap.h +106 -0
  181. data/bindings/bullet/interface/bullet_wrap.o +0 -0
  182. data/bindings/bullet/src/TickListener.h +22 -0
  183. data/deps/include/bullet/Bullet-C-Api.h +176 -0
  184. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp +37 -0
  185. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.h +1051 -0
  186. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h +82 -0
  187. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp +17 -0
  188. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h +270 -0
  189. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp +23 -0
  190. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h +80 -0
  191. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvt.cpp +1295 -0
  192. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvt.h +1257 -0
  193. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp +796 -0
  194. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h +146 -0
  195. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.cpp +22 -0
  196. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h +110 -0
  197. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp +489 -0
  198. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h +151 -0
  199. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp +633 -0
  200. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h +469 -0
  201. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h +40 -0
  202. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp +1375 -0
  203. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h +579 -0
  204. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp +349 -0
  205. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h +171 -0
  206. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btAxisSweep3.obj +0 -0
  207. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btBroadphaseProxy.obj +0 -0
  208. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btCollisionAlgorithm.obj +0 -0
  209. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btDbvt.obj +0 -0
  210. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btDbvtBroadphase.obj +0 -0
  211. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btDispatcher.obj +0 -0
  212. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btMultiSapBroadphase.obj +0 -0
  213. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btOverlappingPairCache.obj +0 -0
  214. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btQuantizedBvh.obj +0 -0
  215. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/BroadphaseCollision/btSimpleBroadphase.obj +0 -0
  216. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CXX.includecache +2574 -0
  217. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/SphereTriangleDetector.obj +0 -0
  218. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btActivatingCollisionAlgorithm.obj +0 -0
  219. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.obj +0 -0
  220. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btBoxBoxCollisionAlgorithm.obj +0 -0
  221. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btBoxBoxDetector.obj +0 -0
  222. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btCollisionDispatcher.obj +0 -0
  223. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btCollisionObject.obj +0 -0
  224. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btCollisionWorld.obj +0 -0
  225. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btCompoundCollisionAlgorithm.obj +0 -0
  226. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btConvex2dConvex2dAlgorithm.obj +0 -0
  227. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btConvexConcaveCollisionAlgorithm.obj +0 -0
  228. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btConvexConvexAlgorithm.obj +0 -0
  229. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btConvexPlaneCollisionAlgorithm.obj +0 -0
  230. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btDefaultCollisionConfiguration.obj +0 -0
  231. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btEmptyCollisionAlgorithm.obj +0 -0
  232. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btGhostObject.obj +0 -0
  233. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btInternalEdgeUtility.obj +0 -0
  234. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btManifoldResult.obj +0 -0
  235. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btSimulationIslandManager.obj +0 -0
  236. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btSphereBoxCollisionAlgorithm.obj +0 -0
  237. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btSphereSphereCollisionAlgorithm.obj +0 -0
  238. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btSphereTriangleCollisionAlgorithm.obj +0 -0
  239. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionDispatch/btUnionFind.obj +0 -0
  240. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btBox2dShape.obj +0 -0
  241. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btBoxShape.obj +0 -0
  242. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btBvhTriangleMeshShape.obj +0 -0
  243. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btCapsuleShape.obj +0 -0
  244. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btCollisionShape.obj +0 -0
  245. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btCompoundShape.obj +0 -0
  246. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConcaveShape.obj +0 -0
  247. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConeShape.obj +0 -0
  248. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvex2dShape.obj +0 -0
  249. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvexHullShape.obj +0 -0
  250. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvexInternalShape.obj +0 -0
  251. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvexPointCloudShape.obj +0 -0
  252. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvexPolyhedron.obj +0 -0
  253. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvexShape.obj +0 -0
  254. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btConvexTriangleMeshShape.obj +0 -0
  255. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btCylinderShape.obj +0 -0
  256. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btEmptyShape.obj +0 -0
  257. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btHeightfieldTerrainShape.obj +0 -0
  258. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btMinkowskiSumShape.obj +0 -0
  259. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btMultiSphereShape.obj +0 -0
  260. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btMultimaterialTriangleMeshShape.obj +0 -0
  261. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btOptimizedBvh.obj +0 -0
  262. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btPolyhedralConvexShape.obj +0 -0
  263. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btScaledBvhTriangleMeshShape.obj +0 -0
  264. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btShapeHull.obj +0 -0
  265. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btSphereShape.obj +0 -0
  266. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btStaticPlaneShape.obj +0 -0
  267. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btStridingMeshInterface.obj +0 -0
  268. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTetrahedronShape.obj +0 -0
  269. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTriangleBuffer.obj +0 -0
  270. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTriangleCallback.obj +0 -0
  271. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTriangleIndexVertexArray.obj +0 -0
  272. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTriangleIndexVertexMaterialArray.obj +0 -0
  273. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTriangleMesh.obj +0 -0
  274. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btTriangleMeshShape.obj +0 -0
  275. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/CollisionShapes/btUniformScalingShape.obj +0 -0
  276. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/DependInfo.cmake +121 -0
  277. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btContactProcessing.obj +0 -0
  278. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btGImpactBvh.obj +0 -0
  279. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btGImpactCollisionAlgorithm.obj +0 -0
  280. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btGImpactQuantizedBvh.obj +0 -0
  281. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btGImpactShape.obj +0 -0
  282. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btGenericPoolAllocator.obj +0 -0
  283. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/btTriangleShapeEx.obj +0 -0
  284. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/gim_box_set.obj +0 -0
  285. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/gim_contact.obj +0 -0
  286. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/gim_memory.obj +0 -0
  287. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/Gimpact/gim_tri_collision.obj +0 -0
  288. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btContinuousConvexCollision.obj +0 -0
  289. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btConvexCast.obj +0 -0
  290. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btGjkConvexCast.obj +0 -0
  291. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btGjkEpa2.obj +0 -0
  292. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.obj +0 -0
  293. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btGjkPairDetector.obj +0 -0
  294. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.obj +0 -0
  295. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btPersistentManifold.obj +0 -0
  296. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btPolyhedralContactClipping.obj +0 -0
  297. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btRaycastCallback.obj +0 -0
  298. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btSubSimplexConvexCast.obj +0 -0
  299. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/NarrowPhaseCollision/btVoronoiSimplexSolver.obj +0 -0
  300. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/build.make +2561 -0
  301. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/cmake_clean.cmake +101 -0
  302. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/cmake_clean_target.cmake +3 -0
  303. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/depend.internal +2058 -0
  304. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/depend.make +2058 -0
  305. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/flags.make +8 -0
  306. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/includes_CXX.rsp +1 -0
  307. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/link.txt +2 -0
  308. data/deps/include/bullet/BulletCollision/CMakeFiles/BulletCollision.dir/progress.make +93 -0
  309. data/deps/include/bullet/BulletCollision/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  310. data/deps/include/bullet/BulletCollision/CMakeFiles/progress.marks +1 -0
  311. data/deps/include/bullet/BulletCollision/CMakeLists.txt +279 -0
  312. data/deps/include/bullet/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp +201 -0
  313. data/deps/include/bullet/BulletCollision/CollisionDispatch/SphereTriangleDetector.h +51 -0
  314. data/deps/include/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp +47 -0
  315. data/deps/include/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h +36 -0
  316. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp +435 -0
  317. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h +66 -0
  318. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp +85 -0
  319. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h +66 -0
  320. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp +718 -0
  321. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxDetector.h +44 -0
  322. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionConfiguration.h +48 -0
  323. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h +45 -0
  324. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp +310 -0
  325. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h +172 -0
  326. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.cpp +116 -0
  327. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h +524 -0
  328. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp +1518 -0
  329. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h +509 -0
  330. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp +353 -0
  331. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h +86 -0
  332. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp +247 -0
  333. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h +95 -0
  334. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp +312 -0
  335. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h +116 -0
  336. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp +739 -0
  337. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h +109 -0
  338. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp +173 -0
  339. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h +84 -0
  340. data/deps/include/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp +309 -0
  341. data/deps/include/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h +137 -0
  342. data/deps/include/bullet/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp +34 -0
  343. data/deps/include/bullet/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h +54 -0
  344. data/deps/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.cpp +171 -0
  345. data/deps/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h +175 -0
  346. data/deps/include/bullet/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp +842 -0
  347. data/deps/include/bullet/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h +46 -0
  348. data/deps/include/bullet/BulletCollision/CollisionDispatch/btManifoldResult.cpp +135 -0
  349. data/deps/include/bullet/BulletCollision/CollisionDispatch/btManifoldResult.h +128 -0
  350. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp +450 -0
  351. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSimulationIslandManager.h +81 -0
  352. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp +260 -0
  353. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h +75 -0
  354. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp +105 -0
  355. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h +66 -0
  356. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp +84 -0
  357. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h +69 -0
  358. data/deps/include/bullet/BulletCollision/CollisionDispatch/btUnionFind.cpp +82 -0
  359. data/deps/include/bullet/BulletCollision/CollisionDispatch/btUnionFind.h +129 -0
  360. data/deps/include/bullet/BulletCollision/CollisionShapes/btBox2dShape.cpp +42 -0
  361. data/deps/include/bullet/BulletCollision/CollisionShapes/btBox2dShape.h +369 -0
  362. data/deps/include/bullet/BulletCollision/CollisionShapes/btBoxShape.cpp +51 -0
  363. data/deps/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h +312 -0
  364. data/deps/include/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp +466 -0
  365. data/deps/include/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h +139 -0
  366. data/deps/include/bullet/BulletCollision/CollisionShapes/btCapsuleShape.cpp +171 -0
  367. data/deps/include/bullet/BulletCollision/CollisionShapes/btCapsuleShape.h +173 -0
  368. data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionMargin.h +27 -0
  369. data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionShape.cpp +119 -0
  370. data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionShape.h +150 -0
  371. data/deps/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.cpp +356 -0
  372. data/deps/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h +212 -0
  373. data/deps/include/bullet/BulletCollision/CollisionShapes/btConcaveShape.cpp +27 -0
  374. data/deps/include/bullet/BulletCollision/CollisionShapes/btConcaveShape.h +60 -0
  375. data/deps/include/bullet/BulletCollision/CollisionShapes/btConeShape.cpp +143 -0
  376. data/deps/include/bullet/BulletCollision/CollisionShapes/btConeShape.h +103 -0
  377. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvex2dShape.cpp +92 -0
  378. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvex2dShape.h +80 -0
  379. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexHullShape.cpp +255 -0
  380. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexHullShape.h +122 -0
  381. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.cpp +151 -0
  382. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h +224 -0
  383. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp +157 -0
  384. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.h +105 -0
  385. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp +296 -0
  386. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.h +62 -0
  387. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexShape.cpp +446 -0
  388. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexShape.h +84 -0
  389. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp +315 -0
  390. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h +75 -0
  391. data/deps/include/bullet/BulletCollision/CollisionShapes/btCylinderShape.cpp +281 -0
  392. data/deps/include/bullet/BulletCollision/CollisionShapes/btCylinderShape.h +200 -0
  393. data/deps/include/bullet/BulletCollision/CollisionShapes/btEmptyShape.cpp +50 -0
  394. data/deps/include/bullet/BulletCollision/CollisionShapes/btEmptyShape.h +70 -0
  395. data/deps/include/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp +411 -0
  396. data/deps/include/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h +161 -0
  397. data/deps/include/bullet/BulletCollision/CollisionShapes/btMaterial.h +35 -0
  398. data/deps/include/bullet/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp +60 -0
  399. data/deps/include/bullet/BulletCollision/CollisionShapes/btMinkowskiSumShape.h +60 -0
  400. data/deps/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.cpp +167 -0
  401. data/deps/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h +99 -0
  402. data/deps/include/bullet/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp +45 -0
  403. data/deps/include/bullet/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h +120 -0
  404. data/deps/include/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.cpp +391 -0
  405. data/deps/include/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.h +65 -0
  406. data/deps/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp +475 -0
  407. data/deps/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h +112 -0
  408. data/deps/include/bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp +123 -0
  409. data/deps/include/bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h +93 -0
  410. data/deps/include/bullet/BulletCollision/CollisionShapes/btShapeHull.cpp +170 -0
  411. data/deps/include/bullet/BulletCollision/CollisionShapes/btShapeHull.h +59 -0
  412. data/deps/include/bullet/BulletCollision/CollisionShapes/btSphereShape.cpp +71 -0
  413. data/deps/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h +73 -0
  414. data/deps/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp +107 -0
  415. data/deps/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h +103 -0
  416. data/deps/include/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp +381 -0
  417. data/deps/include/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.h +162 -0
  418. data/deps/include/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.cpp +218 -0
  419. data/deps/include/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.h +74 -0
  420. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleBuffer.cpp +35 -0
  421. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleBuffer.h +69 -0
  422. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleCallback.cpp +28 -0
  423. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleCallback.h +42 -0
  424. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp +95 -0
  425. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h +133 -0
  426. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp +86 -0
  427. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h +84 -0
  428. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleInfoMap.h +241 -0
  429. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMesh.cpp +140 -0
  430. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMesh.h +69 -0
  431. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp +211 -0
  432. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h +89 -0
  433. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleShape.h +182 -0
  434. data/deps/include/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.cpp +160 -0
  435. data/deps/include/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.h +87 -0
  436. data/deps/include/bullet/BulletCollision/Doxyfile +746 -0
  437. data/deps/include/bullet/BulletCollision/Gimpact/btBoxCollision.h +647 -0
  438. data/deps/include/bullet/BulletCollision/Gimpact/btClipPolygon.h +182 -0
  439. data/deps/include/bullet/BulletCollision/Gimpact/btContactProcessing.cpp +181 -0
  440. data/deps/include/bullet/BulletCollision/Gimpact/btContactProcessing.h +145 -0
  441. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactBvh.cpp +498 -0
  442. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactBvh.h +396 -0
  443. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp +904 -0
  444. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h +306 -0
  445. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactMassUtil.h +60 -0
  446. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp +528 -0
  447. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.h +372 -0
  448. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactShape.cpp +203 -0
  449. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactShape.h +1171 -0
  450. data/deps/include/bullet/BulletCollision/Gimpact/btGenericPoolAllocator.cpp +283 -0
  451. data/deps/include/bullet/BulletCollision/Gimpact/btGenericPoolAllocator.h +163 -0
  452. data/deps/include/bullet/BulletCollision/Gimpact/btGeometryOperations.h +212 -0
  453. data/deps/include/bullet/BulletCollision/Gimpact/btQuantization.h +88 -0
  454. data/deps/include/bullet/BulletCollision/Gimpact/btTriangleShapeEx.cpp +218 -0
  455. data/deps/include/bullet/BulletCollision/Gimpact/btTriangleShapeEx.h +180 -0
  456. data/deps/include/bullet/BulletCollision/Gimpact/gim_array.h +326 -0
  457. data/deps/include/bullet/BulletCollision/Gimpact/gim_basic_geometry_operations.h +543 -0
  458. data/deps/include/bullet/BulletCollision/Gimpact/gim_bitset.h +123 -0
  459. data/deps/include/bullet/BulletCollision/Gimpact/gim_box_collision.h +590 -0
  460. data/deps/include/bullet/BulletCollision/Gimpact/gim_box_set.cpp +182 -0
  461. data/deps/include/bullet/BulletCollision/Gimpact/gim_box_set.h +674 -0
  462. data/deps/include/bullet/BulletCollision/Gimpact/gim_clip_polygon.h +210 -0
  463. data/deps/include/bullet/BulletCollision/Gimpact/gim_contact.cpp +146 -0
  464. data/deps/include/bullet/BulletCollision/Gimpact/gim_contact.h +164 -0
  465. data/deps/include/bullet/BulletCollision/Gimpact/gim_geom_types.h +97 -0
  466. data/deps/include/bullet/BulletCollision/Gimpact/gim_geometry.h +42 -0
  467. data/deps/include/bullet/BulletCollision/Gimpact/gim_hash_table.h +902 -0
  468. data/deps/include/bullet/BulletCollision/Gimpact/gim_linear_math.h +1573 -0
  469. data/deps/include/bullet/BulletCollision/Gimpact/gim_math.h +157 -0
  470. data/deps/include/bullet/BulletCollision/Gimpact/gim_memory.cpp +135 -0
  471. data/deps/include/bullet/BulletCollision/Gimpact/gim_memory.h +190 -0
  472. data/deps/include/bullet/BulletCollision/Gimpact/gim_radixsort.h +406 -0
  473. data/deps/include/bullet/BulletCollision/Gimpact/gim_tri_collision.cpp +640 -0
  474. data/deps/include/bullet/BulletCollision/Gimpact/gim_tri_collision.h +379 -0
  475. data/deps/include/bullet/BulletCollision/Makefile +1793 -0
  476. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp +243 -0
  477. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h +59 -0
  478. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp +20 -0
  479. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h +73 -0
  480. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h +42 -0
  481. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h +91 -0
  482. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp +176 -0
  483. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h +50 -0
  484. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp +989 -0
  485. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h +75 -0
  486. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp +66 -0
  487. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h +43 -0
  488. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp +457 -0
  489. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h +103 -0
  490. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h +158 -0
  491. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp +362 -0
  492. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h +40 -0
  493. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp +302 -0
  494. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h +228 -0
  495. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPointCollector.h +64 -0
  496. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp +440 -0
  497. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h +46 -0
  498. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp +177 -0
  499. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h +72 -0
  500. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h +63 -0
  501. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp +160 -0
  502. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h +50 -0
  503. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp +609 -0
  504. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h +179 -0
  505. data/deps/include/bullet/BulletCollision/cmake_install.cmake +29 -0
  506. data/deps/include/bullet/BulletCollision/ibmsdk/Makefile +112 -0
  507. data/deps/include/bullet/BulletCollision/premake4.lua +11 -0
  508. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/CXX.includecache +1466 -0
  509. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Character/btKinematicCharacterController.obj +0 -0
  510. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btConeTwistConstraint.obj +0 -0
  511. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btContactConstraint.obj +0 -0
  512. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btGeneric6DofConstraint.obj +0 -0
  513. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btGeneric6DofSpringConstraint.obj +0 -0
  514. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btHinge2Constraint.obj +0 -0
  515. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btHingeConstraint.obj +0 -0
  516. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btPoint2PointConstraint.obj +0 -0
  517. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btSequentialImpulseConstraintSolver.obj +0 -0
  518. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btSliderConstraint.obj +0 -0
  519. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btSolve2LinearConstraint.obj +0 -0
  520. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btTypedConstraint.obj +0 -0
  521. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/ConstraintSolver/btUniversalConstraint.obj +0 -0
  522. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/DependInfo.cmake +48 -0
  523. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Dynamics/Bullet-C-API.obj +0 -0
  524. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Dynamics/btDiscreteDynamicsWorld.obj +0 -0
  525. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Dynamics/btRigidBody.obj +0 -0
  526. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Dynamics/btSimpleDynamicsWorld.obj +0 -0
  527. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Vehicle/btRaycastVehicle.obj +0 -0
  528. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/Vehicle/btWheelInfo.obj +0 -0
  529. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/build.make +590 -0
  530. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/cmake_clean.cmake +28 -0
  531. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/cmake_clean_target.cmake +3 -0
  532. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/depend.internal +601 -0
  533. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/depend.make +601 -0
  534. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/flags.make +8 -0
  535. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/includes_CXX.rsp +1 -0
  536. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/link.txt +2 -0
  537. data/deps/include/bullet/BulletDynamics/CMakeFiles/BulletDynamics.dir/progress.make +20 -0
  538. data/deps/include/bullet/BulletDynamics/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  539. data/deps/include/bullet/BulletDynamics/CMakeFiles/progress.marks +1 -0
  540. data/deps/include/bullet/BulletDynamics/CMakeLists.txt +112 -0
  541. data/deps/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h +46 -0
  542. data/deps/include/bullet/BulletDynamics/Character/btKinematicCharacterController.cpp +641 -0
  543. data/deps/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h +163 -0
  544. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp +1132 -0
  545. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h +346 -0
  546. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h +52 -0
  547. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.cpp +178 -0
  548. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.h +71 -0
  549. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h +87 -0
  550. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp +1078 -0
  551. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h +614 -0
  552. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp +185 -0
  553. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h +99 -0
  554. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp +66 -0
  555. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.h +58 -0
  556. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp +1034 -0
  557. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.h +381 -0
  558. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btJacobianEntry.h +156 -0
  559. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp +230 -0
  560. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h +161 -0
  561. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp +1269 -0
  562. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h +130 -0
  563. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp +857 -0
  564. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.h +333 -0
  565. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp +255 -0
  566. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h +107 -0
  567. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h +191 -0
  568. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h +98 -0
  569. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp +220 -0
  570. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h +452 -0
  571. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp +87 -0
  572. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.h +62 -0
  573. data/deps/include/bullet/BulletDynamics/Dynamics/Bullet-C-API.cpp +405 -0
  574. data/deps/include/bullet/BulletDynamics/Dynamics/btActionInterface.h +46 -0
  575. data/deps/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +1257 -0
  576. data/deps/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h +203 -0
  577. data/deps/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h +151 -0
  578. data/deps/include/bullet/BulletDynamics/Dynamics/btRigidBody.cpp +403 -0
  579. data/deps/include/bullet/BulletDynamics/Dynamics/btRigidBody.h +691 -0
  580. data/deps/include/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp +280 -0
  581. data/deps/include/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h +89 -0
  582. data/deps/include/bullet/BulletDynamics/Makefile +479 -0
  583. data/deps/include/bullet/BulletDynamics/Vehicle/btRaycastVehicle.cpp +771 -0
  584. data/deps/include/bullet/BulletDynamics/Vehicle/btRaycastVehicle.h +236 -0
  585. data/deps/include/bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h +35 -0
  586. data/deps/include/bullet/BulletDynamics/Vehicle/btWheelInfo.cpp +56 -0
  587. data/deps/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h +119 -0
  588. data/deps/include/bullet/BulletDynamics/cmake_install.cmake +29 -0
  589. data/deps/include/bullet/BulletDynamics/ibmsdk/Makefile +53 -0
  590. data/deps/include/bullet/BulletDynamics/premake4.lua +11 -0
  591. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/CXX.includecache +1480 -0
  592. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/DependInfo.cmake +47 -0
  593. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/PosixThreadSupport.obj +0 -0
  594. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SequentialThreadSupport.obj +0 -0
  595. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuCollisionObjectWrapper.obj +0 -0
  596. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuCollisionTaskProcess.obj +0 -0
  597. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuContactManifoldCollisionAlgorithm.obj +0 -0
  598. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuFakeDma.obj +0 -0
  599. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuGatheringCollisionDispatcher.obj +0 -0
  600. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuLibspe2Support.obj +0 -0
  601. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.obj +0 -0
  602. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuNarrowPhaseCollisionTask/SpuContactResult.obj +0 -0
  603. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.obj +0 -0
  604. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.obj +0 -0
  605. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuNarrowPhaseCollisionTask/boxBoxDistance.obj +0 -0
  606. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/SpuSampleTaskProcess.obj +0 -0
  607. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/Win32ThreadSupport.obj +0 -0
  608. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/btGpu3DGridBroadphase.obj +0 -0
  609. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/btParallelConstraintSolver.obj +0 -0
  610. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/btThreadSupportInterface.obj +0 -0
  611. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/build.make +563 -0
  612. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/cmake_clean.cmake +27 -0
  613. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/cmake_clean_target.cmake +3 -0
  614. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/depend.internal +690 -0
  615. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/depend.make +690 -0
  616. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/flags.make +8 -0
  617. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/includes_CXX.rsp +1 -0
  618. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/link.txt +2 -0
  619. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/progress.make +19 -0
  620. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  621. data/deps/include/bullet/BulletMultiThreaded/CMakeFiles/progress.marks +1 -0
  622. data/deps/include/bullet/BulletMultiThreaded/CMakeLists.txt +123 -0
  623. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  624. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/CMakeFiles/progress.marks +1 -0
  625. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/CMakeLists.txt +13 -0
  626. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/CMakeLists.txt +83 -0
  627. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/ApplyForces.hlsl +95 -0
  628. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/ComputeBounds.hlsl +83 -0
  629. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/Integrate.hlsl +41 -0
  630. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/OutputToVertexArray.hlsl +63 -0
  631. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/PrepareLinks.hlsl +44 -0
  632. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/SolvePositions.hlsl +55 -0
  633. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/SolvePositionsSIMDBatched.hlsl +147 -0
  634. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdateConstants.hlsl +48 -0
  635. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdateNodes.hlsl +49 -0
  636. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdateNormals.hlsl +98 -0
  637. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdatePositions.hlsl +44 -0
  638. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdatePositionsFromVelocities.hlsl +35 -0
  639. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/VSolveLinks.hlsl +55 -0
  640. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/solveCollisionsAndUpdateVelocities.hlsl +170 -0
  641. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/solveCollisionsAndUpdateVelocitiesSIMDBatched.hlsl +191 -0
  642. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverBuffer_DX11.h +323 -0
  643. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11.h +103 -0
  644. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11SIMDAware.h +173 -0
  645. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverTriangleData_DX11.h +96 -0
  646. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexBuffer_DX11.h +107 -0
  647. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexData_DX11.h +63 -0
  648. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11.cpp +2236 -0
  649. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11.h +691 -0
  650. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11SIMDAware.cpp +1051 -0
  651. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11SIMDAware.h +81 -0
  652. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/premake4.lua +23 -0
  653. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/Makefile +122 -0
  654. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/AMD/CMakeLists.txt +62 -0
  655. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/AMD/premake4.lua +27 -0
  656. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Apple/CMakeLists.txt +77 -0
  657. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  658. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/CMakeFiles/progress.marks +1 -0
  659. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/CMakeLists.txt +17 -0
  660. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Intel/CMakeLists.txt +82 -0
  661. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Intel/premake4.lua +27 -0
  662. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Makefile +122 -0
  663. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/CXX.includecache +556 -0
  664. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/DependInfo.cmake +31 -0
  665. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/__/btSoftBodySolver_OpenCL.obj +0 -0
  666. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/build.make +104 -0
  667. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/cmake_clean.cmake +10 -0
  668. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/cmake_clean_target.cmake +3 -0
  669. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/depend.internal +76 -0
  670. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/depend.make +76 -0
  671. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/flags.make +8 -0
  672. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/includes_CXX.rsp +1 -0
  673. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/link.txt +2 -0
  674. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/BulletSoftBodySolvers_OpenCL_Mini.dir/progress.make +2 -0
  675. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  676. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeFiles/progress.marks +1 -0
  677. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/CMakeLists.txt +75 -0
  678. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/Makefile +155 -0
  679. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/MiniCLTaskWrap.cpp +249 -0
  680. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/MiniCL/cmake_install.cmake +29 -0
  681. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/NVidia/CMakeLists.txt +81 -0
  682. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/NVidia/premake4.lua +27 -0
  683. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/ApplyForces.cl +102 -0
  684. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/ComputeBounds.cl +82 -0
  685. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/Integrate.cl +35 -0
  686. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/OutputToVertexArray.cl +46 -0
  687. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/PrepareLinks.cl +38 -0
  688. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/SolveCollisionsAndUpdateVelocities.cl +204 -0
  689. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/SolveCollisionsAndUpdateVelocitiesSIMDBatched.cl +242 -0
  690. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/SolvePositions.cl +57 -0
  691. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/SolvePositionsSIMDBatched.cl +130 -0
  692. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateConstants.cl +44 -0
  693. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateFixedVertexPositions.cl +25 -0
  694. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateNodes.cl +39 -0
  695. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateNormals.cl +102 -0
  696. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdatePositions.cl +34 -0
  697. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdatePositionsFromVelocities.cl +28 -0
  698. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/VSolveLinks.cl +45 -0
  699. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverBuffer_OpenCL.h +209 -0
  700. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCL.h +99 -0
  701. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCLSIMDAware.h +169 -0
  702. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverOutputCLtoGL.cpp +126 -0
  703. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverOutputCLtoGL.h +62 -0
  704. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverTriangleData_OpenCL.h +84 -0
  705. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexBuffer_OpenGL.h +166 -0
  706. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexData_OpenCL.h +52 -0
  707. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCL.cpp +1820 -0
  708. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCL.h +527 -0
  709. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCLSIMDAware.cpp +1101 -0
  710. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCLSIMDAware.h +81 -0
  711. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/cmake_install.cmake +35 -0
  712. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/Shared/btSoftBodySolverData.h +748 -0
  713. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/cmake_install.cmake +35 -0
  714. data/deps/include/bullet/BulletMultiThreaded/HeapManager.h +117 -0
  715. data/deps/include/bullet/BulletMultiThreaded/Makefile +461 -0
  716. data/deps/include/bullet/BulletMultiThreaded/Makefile.original +187 -0
  717. data/deps/include/bullet/BulletMultiThreaded/PlatformDefinitions.h +99 -0
  718. data/deps/include/bullet/BulletMultiThreaded/PosixThreadSupport.cpp +399 -0
  719. data/deps/include/bullet/BulletMultiThreaded/PosixThreadSupport.h +142 -0
  720. data/deps/include/bullet/BulletMultiThreaded/PpuAddressSpace.h +37 -0
  721. data/deps/include/bullet/BulletMultiThreaded/SequentialThreadSupport.cpp +169 -0
  722. data/deps/include/bullet/BulletMultiThreaded/SequentialThreadSupport.h +96 -0
  723. data/deps/include/bullet/BulletMultiThreaded/SpuCollisionObjectWrapper.cpp +48 -0
  724. data/deps/include/bullet/BulletMultiThreaded/SpuCollisionObjectWrapper.h +40 -0
  725. data/deps/include/bullet/BulletMultiThreaded/SpuCollisionTaskProcess.cpp +317 -0
  726. data/deps/include/bullet/BulletMultiThreaded/SpuCollisionTaskProcess.h +163 -0
  727. data/deps/include/bullet/BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.cpp +69 -0
  728. data/deps/include/bullet/BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h +120 -0
  729. data/deps/include/bullet/BulletMultiThreaded/SpuDoubleBuffer.h +126 -0
  730. data/deps/include/bullet/BulletMultiThreaded/SpuFakeDma.cpp +215 -0
  731. data/deps/include/bullet/BulletMultiThreaded/SpuFakeDma.h +135 -0
  732. data/deps/include/bullet/BulletMultiThreaded/SpuGatheringCollisionDispatcher.cpp +276 -0
  733. data/deps/include/bullet/BulletMultiThreaded/SpuGatheringCollisionDispatcher.h +72 -0
  734. data/deps/include/bullet/BulletMultiThreaded/SpuLibspe2Support.cpp +257 -0
  735. data/deps/include/bullet/BulletMultiThreaded/SpuLibspe2Support.h +180 -0
  736. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h +167 -0
  737. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp +302 -0
  738. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h +128 -0
  739. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp +248 -0
  740. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h +106 -0
  741. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h +51 -0
  742. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp +1415 -0
  743. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h +140 -0
  744. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h +19 -0
  745. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.cpp +348 -0
  746. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h +48 -0
  747. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h +70 -0
  748. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.cpp +1160 -0
  749. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h +65 -0
  750. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/readme.txt +1 -0
  751. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTask/SpuSampleTask.cpp +214 -0
  752. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h +54 -0
  753. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTask/readme.txt +1 -0
  754. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTaskProcess.cpp +222 -0
  755. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTaskProcess.h +153 -0
  756. data/deps/include/bullet/BulletMultiThreaded/SpuSync.h +149 -0
  757. data/deps/include/bullet/BulletMultiThreaded/TrbDynBody.h +79 -0
  758. data/deps/include/bullet/BulletMultiThreaded/TrbStateVec.h +339 -0
  759. data/deps/include/bullet/BulletMultiThreaded/Win32ThreadSupport.cpp +446 -0
  760. data/deps/include/bullet/BulletMultiThreaded/Win32ThreadSupport.h +138 -0
  761. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphase.cpp +590 -0
  762. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphase.h +138 -0
  763. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedCode.h +430 -0
  764. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedDefs.h +61 -0
  765. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedTypes.h +67 -0
  766. data/deps/include/bullet/BulletMultiThreaded/btGpuDefines.h +211 -0
  767. data/deps/include/bullet/BulletMultiThreaded/btGpuUtilsSharedCode.h +55 -0
  768. data/deps/include/bullet/BulletMultiThreaded/btGpuUtilsSharedDefs.h +52 -0
  769. data/deps/include/bullet/BulletMultiThreaded/btParallelConstraintSolver.cpp +1391 -0
  770. data/deps/include/bullet/BulletMultiThreaded/btParallelConstraintSolver.h +285 -0
  771. data/deps/include/bullet/BulletMultiThreaded/btThreadSupportInterface.cpp +22 -0
  772. data/deps/include/bullet/BulletMultiThreaded/btThreadSupportInterface.h +85 -0
  773. data/deps/include/bullet/BulletMultiThreaded/cmake_install.cmake +35 -0
  774. data/deps/include/bullet/BulletMultiThreaded/vectormath2bullet.h +73 -0
  775. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/CXX.includecache +750 -0
  776. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/DependInfo.cmake +37 -0
  777. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btDefaultSoftBodySolver.obj +0 -0
  778. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftBody.obj +0 -0
  779. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftBodyConcaveCollisionAlgorithm.obj +0 -0
  780. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftBodyHelpers.obj +0 -0
  781. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftBodyRigidBodyCollisionConfiguration.obj +0 -0
  782. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftRigidCollisionAlgorithm.obj +0 -0
  783. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftRigidDynamicsWorld.obj +0 -0
  784. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/btSoftSoftCollisionAlgorithm.obj +0 -0
  785. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/build.make +293 -0
  786. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/cmake_clean.cmake +17 -0
  787. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/cmake_clean_target.cmake +3 -0
  788. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/depend.internal +344 -0
  789. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/depend.make +344 -0
  790. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/flags.make +8 -0
  791. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/includes_CXX.rsp +1 -0
  792. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/link.txt +2 -0
  793. data/deps/include/bullet/BulletSoftBody/CMakeFiles/BulletSoftBody.dir/progress.make +9 -0
  794. data/deps/include/bullet/BulletSoftBody/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  795. data/deps/include/bullet/BulletSoftBody/CMakeFiles/progress.marks +1 -0
  796. data/deps/include/bullet/BulletSoftBody/CMakeLists.txt +65 -0
  797. data/deps/include/bullet/BulletSoftBody/Makefile +281 -0
  798. data/deps/include/bullet/BulletSoftBody/btDefaultSoftBodySolver.cpp +151 -0
  799. data/deps/include/bullet/BulletSoftBody/btDefaultSoftBodySolver.h +63 -0
  800. data/deps/include/bullet/BulletSoftBody/btSoftBody.cpp +3538 -0
  801. data/deps/include/bullet/BulletSoftBody/btSoftBody.h +987 -0
  802. data/deps/include/bullet/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp +368 -0
  803. data/deps/include/bullet/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h +153 -0
  804. data/deps/include/bullet/BulletSoftBody/btSoftBodyData.h +217 -0
  805. data/deps/include/bullet/BulletSoftBody/btSoftBodyHelpers.cpp +1055 -0
  806. data/deps/include/bullet/BulletSoftBody/btSoftBodyHelpers.h +143 -0
  807. data/deps/include/bullet/BulletSoftBody/btSoftBodyInternals.h +930 -0
  808. data/deps/include/bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp +134 -0
  809. data/deps/include/bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h +48 -0
  810. data/deps/include/bullet/BulletSoftBody/btSoftBodySolverVertexBuffer.h +165 -0
  811. data/deps/include/bullet/BulletSoftBody/btSoftBodySolvers.h +154 -0
  812. data/deps/include/bullet/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp +84 -0
  813. data/deps/include/bullet/BulletSoftBody/btSoftRigidCollisionAlgorithm.h +75 -0
  814. data/deps/include/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.cpp +365 -0
  815. data/deps/include/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.h +107 -0
  816. data/deps/include/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp +47 -0
  817. data/deps/include/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.h +69 -0
  818. data/deps/include/bullet/BulletSoftBody/btSparseSDF.h +306 -0
  819. data/deps/include/bullet/BulletSoftBody/cmake_install.cmake +29 -0
  820. data/deps/include/bullet/BulletSoftBody/premake4.lua +11 -0
  821. data/deps/include/bullet/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  822. data/deps/include/bullet/CMakeFiles/progress.marks +1 -0
  823. data/deps/include/bullet/CMakeLists.txt +28 -0
  824. data/deps/include/bullet/LinearMath/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  825. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/CXX.includecache +154 -0
  826. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/DependInfo.cmake +35 -0
  827. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/btAlignedAllocator.obj +0 -0
  828. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/btConvexHull.obj +0 -0
  829. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/btConvexHullComputer.obj +0 -0
  830. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/btGeometryUtil.obj +0 -0
  831. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/btQuickprof.obj +0 -0
  832. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/btSerializer.obj +0 -0
  833. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/build.make +239 -0
  834. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/cmake_clean.cmake +15 -0
  835. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/cmake_clean_target.cmake +3 -0
  836. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/depend.internal +38 -0
  837. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/depend.make +38 -0
  838. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/flags.make +8 -0
  839. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/includes_CXX.rsp +1 -0
  840. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/link.txt +2 -0
  841. data/deps/include/bullet/LinearMath/CMakeFiles/LinearMath.dir/progress.make +7 -0
  842. data/deps/include/bullet/LinearMath/CMakeFiles/progress.marks +1 -0
  843. data/deps/include/bullet/LinearMath/CMakeLists.txt +66 -0
  844. data/deps/include/bullet/LinearMath/Makefile +245 -0
  845. data/deps/include/bullet/LinearMath/btAabbUtil2.h +236 -0
  846. data/deps/include/bullet/LinearMath/btAlignedAllocator.cpp +181 -0
  847. data/deps/include/bullet/LinearMath/btAlignedAllocator.h +107 -0
  848. data/deps/include/bullet/LinearMath/btAlignedObjectArray.h +494 -0
  849. data/deps/include/bullet/LinearMath/btConvexHull.cpp +1174 -0
  850. data/deps/include/bullet/LinearMath/btConvexHull.h +241 -0
  851. data/deps/include/bullet/LinearMath/btConvexHullComputer.cpp +2751 -0
  852. data/deps/include/bullet/LinearMath/btConvexHullComputer.h +103 -0
  853. data/deps/include/bullet/LinearMath/btDefaultMotionState.h +40 -0
  854. data/deps/include/bullet/LinearMath/btGeometryUtil.cpp +185 -0
  855. data/deps/include/bullet/LinearMath/btGeometryUtil.h +42 -0
  856. data/deps/include/bullet/LinearMath/btGrahamScan2dConvexHull.h +110 -0
  857. data/deps/include/bullet/LinearMath/btHashMap.h +450 -0
  858. data/deps/include/bullet/LinearMath/btIDebugDraw.h +418 -0
  859. data/deps/include/bullet/LinearMath/btList.h +73 -0
  860. data/deps/include/bullet/LinearMath/btMatrix3x3.h +771 -0
  861. data/deps/include/bullet/LinearMath/btMinMax.h +71 -0
  862. data/deps/include/bullet/LinearMath/btMotionState.h +40 -0
  863. data/deps/include/bullet/LinearMath/btPoolAllocator.h +121 -0
  864. data/deps/include/bullet/LinearMath/btQuadWord.h +180 -0
  865. data/deps/include/bullet/LinearMath/btQuaternion.h +430 -0
  866. data/deps/include/bullet/LinearMath/btQuickprof.cpp +566 -0
  867. data/deps/include/bullet/LinearMath/btQuickprof.h +203 -0
  868. data/deps/include/bullet/LinearMath/btRandom.h +42 -0
  869. data/deps/include/bullet/LinearMath/btScalar.h +539 -0
  870. data/deps/include/bullet/LinearMath/btSerializer.cpp +841 -0
  871. data/deps/include/bullet/LinearMath/btSerializer.h +639 -0
  872. data/deps/include/bullet/LinearMath/btStackAlloc.h +116 -0
  873. data/deps/include/bullet/LinearMath/btTransform.h +307 -0
  874. data/deps/include/bullet/LinearMath/btTransformUtil.h +228 -0
  875. data/deps/include/bullet/LinearMath/btVector3.h +766 -0
  876. data/deps/include/bullet/LinearMath/cmake_install.cmake +29 -0
  877. data/deps/include/bullet/LinearMath/ibmsdk/Makefile +39 -0
  878. data/deps/include/bullet/LinearMath/premake4.lua +11 -0
  879. data/deps/include/bullet/Makefile +122 -0
  880. data/deps/include/bullet/Makefile.am +554 -0
  881. data/deps/include/bullet/MiniCL/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  882. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/CXX.includecache +332 -0
  883. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/DependInfo.cmake +32 -0
  884. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/MiniCL.obj +0 -0
  885. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/MiniCLTask/MiniCLTask.obj +0 -0
  886. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/MiniCLTaskScheduler.obj +0 -0
  887. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/build.make +158 -0
  888. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/cmake_clean.cmake +12 -0
  889. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/cmake_clean_target.cmake +3 -0
  890. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/depend.internal +70 -0
  891. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/depend.make +70 -0
  892. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/flags.make +8 -0
  893. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/includes_CXX.rsp +1 -0
  894. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/link.txt +2 -0
  895. data/deps/include/bullet/MiniCL/CMakeFiles/MiniCL.dir/progress.make +4 -0
  896. data/deps/include/bullet/MiniCL/CMakeFiles/progress.marks +1 -0
  897. data/deps/include/bullet/MiniCL/CMakeLists.txt +66 -0
  898. data/deps/include/bullet/MiniCL/Makefile +191 -0
  899. data/deps/include/bullet/MiniCL/MiniCL.cpp +784 -0
  900. data/deps/include/bullet/MiniCL/MiniCLTask/MiniCLTask.cpp +74 -0
  901. data/deps/include/bullet/MiniCL/MiniCLTask/MiniCLTask.h +62 -0
  902. data/deps/include/bullet/MiniCL/MiniCLTaskScheduler.cpp +519 -0
  903. data/deps/include/bullet/MiniCL/MiniCLTaskScheduler.h +194 -0
  904. data/deps/include/bullet/MiniCL/cl.h +867 -0
  905. data/deps/include/bullet/MiniCL/cl_MiniCL_Defs.h +439 -0
  906. data/deps/include/bullet/MiniCL/cl_gl.h +113 -0
  907. data/deps/include/bullet/MiniCL/cl_platform.h +254 -0
  908. data/deps/include/bullet/MiniCL/cmake_install.cmake +29 -0
  909. data/deps/include/bullet/btBulletCollisionCommon.h +69 -0
  910. data/deps/include/bullet/btBulletDynamicsCommon.h +48 -0
  911. data/deps/include/bullet/cmake_install.cmake +40 -0
  912. data/deps/include/bullet/ibmsdk/Makefile +16 -0
  913. data/deps/include/bullet/vectormath/scalar/boolInVec.h +225 -0
  914. data/deps/include/bullet/vectormath/scalar/floatInVec.h +343 -0
  915. data/deps/include/bullet/vectormath/scalar/mat_aos.h +1630 -0
  916. data/deps/include/bullet/vectormath/scalar/quat_aos.h +433 -0
  917. data/deps/include/bullet/vectormath/scalar/vec_aos.h +1426 -0
  918. data/deps/include/bullet/vectormath/scalar/vectormath_aos.h +1872 -0
  919. data/deps/include/bullet/vectormath/sse/boolInVec.h +247 -0
  920. data/deps/include/bullet/vectormath/sse/floatInVec.h +340 -0
  921. data/deps/include/bullet/vectormath/sse/mat_aos.h +2190 -0
  922. data/deps/include/bullet/vectormath/sse/quat_aos.h +579 -0
  923. data/deps/include/bullet/vectormath/sse/vec_aos.h +1455 -0
  924. data/deps/include/bullet/vectormath/sse/vecidx_aos.h +80 -0
  925. data/deps/include/bullet/vectormath/sse/vectormath_aos.h +2547 -0
  926. data/deps/include/bullet/vectormath/vmInclude.h +27 -0
  927. data/deps/lib/libBulletCollision.a +0 -0
  928. data/deps/lib/libBulletDynamics.a +0 -0
  929. data/deps/lib/libBulletFileLoader.a +0 -0
  930. data/deps/lib/libBulletMultiThreaded.a +0 -0
  931. data/deps/lib/libBulletSoftBody.a +0 -0
  932. data/deps/lib/libBulletSoftBodySolvers_OpenCL_Mini.a +0 -0
  933. data/deps/lib/libBulletWorldImporter.a +0 -0
  934. data/deps/lib/libConvexDecomposition.a +0 -0
  935. data/deps/lib/libGIMPACTUtils.a +0 -0
  936. data/deps/lib/libHACD.a +0 -0
  937. data/deps/lib/libLinearMath.a +0 -0
  938. data/deps/lib/libMiniCL.a +0 -0
  939. data/lib/Bullet.so +0 -0
  940. data/lib/BulletConfig.rb +28 -0
  941. data/lib/Version.rb +5 -0
  942. data/sample/hello_bullet/HelloBullet.rb +170 -0
  943. metadata +987 -0
@@ -0,0 +1,1391 @@
1
+ /*
2
+ Copyright (C) 2010 Sony Computer Entertainment Inc.
3
+ All rights reserved.
4
+
5
+ This software is provided 'as-is', without any express or implied warranty.
6
+ In no event will the authors be held liable for any damages arising from the use of this software.
7
+ Permission is granted to anyone to use this software for any purpose,
8
+ including commercial applications, and to alter it and redistribute it freely,
9
+ subject to the following restrictions:
10
+
11
+ 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.
12
+ 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
13
+ 3. This notice may not be removed or altered from any source distribution.
14
+
15
+ */
16
+
17
+
18
+ #include "btParallelConstraintSolver.h"
19
+ #include "BulletDynamics/ConstraintSolver/btContactSolverInfo.h"
20
+ #include "BulletCollision/BroadphaseCollision/btDispatcher.h"
21
+ #include "LinearMath/btPoolAllocator.h"
22
+
23
+ #include "BulletMultiThreaded/vectormath2bullet.h"
24
+
25
+ #include "LinearMath/btQuickprof.h"
26
+ #include "BulletMultiThreaded/btThreadSupportInterface.h"
27
+ #ifdef PFX_USE_FREE_VECTORMATH
28
+ #include "vecmath/vmInclude.h"
29
+ #else
30
+ #include "vectormath/vmInclude.h"
31
+ #endif //PFX_USE_FREE_VECTORMATH
32
+
33
+ #include "HeapManager.h"
34
+
35
+ #include "PlatformDefinitions.h"
36
+
37
+ //#include "PfxSimdUtils.h"
38
+ #include "LinearMath/btScalar.h"
39
+
40
+ #include "TrbStateVec.h"
41
+
42
+
43
+
44
+ /////////////////
45
+
46
+
47
+ #define TMP_BUFF_BYTES (15*1024*1024)
48
+ unsigned char ATTRIBUTE_ALIGNED128(tmp_buff[TMP_BUFF_BYTES]);
49
+
50
+
51
+
52
+ // Project Gauss Seidel or the equivalent Sequential Impulse
53
+ inline void resolveSingleConstraintRowGeneric(PfxSolverBody& body1,PfxSolverBody& body2,const btSolverConstraint& c)
54
+ {
55
+
56
+ btScalar deltaImpulse = c.m_rhs-btScalar(c.m_appliedImpulse)*c.m_cfm;
57
+ const btScalar deltaVel1Dotn = c.m_contactNormal.dot(getBtVector3(body1.mDeltaLinearVelocity)) + c.m_relpos1CrossNormal.dot(getBtVector3(body1.mDeltaAngularVelocity));
58
+ const btScalar deltaVel2Dotn = -c.m_contactNormal.dot(getBtVector3(body2.mDeltaLinearVelocity)) + c.m_relpos2CrossNormal.dot(getBtVector3(body2.mDeltaAngularVelocity));
59
+
60
+ // const btScalar delta_rel_vel = deltaVel1Dotn-deltaVel2Dotn;
61
+ deltaImpulse -= deltaVel1Dotn*c.m_jacDiagABInv;
62
+ deltaImpulse -= deltaVel2Dotn*c.m_jacDiagABInv;
63
+
64
+ const btScalar sum = btScalar(c.m_appliedImpulse) + deltaImpulse;
65
+ if (sum < c.m_lowerLimit)
66
+ {
67
+ deltaImpulse = c.m_lowerLimit-c.m_appliedImpulse;
68
+ c.m_appliedImpulse = c.m_lowerLimit;
69
+ }
70
+ else if (sum > c.m_upperLimit)
71
+ {
72
+ deltaImpulse = c.m_upperLimit-c.m_appliedImpulse;
73
+ c.m_appliedImpulse = c.m_upperLimit;
74
+ }
75
+ else
76
+ {
77
+ c.m_appliedImpulse = sum;
78
+ }
79
+
80
+
81
+ if (body1.mMassInv)
82
+ {
83
+ btVector3 linearComponent = c.m_contactNormal*body1.mMassInv;
84
+ body1.mDeltaLinearVelocity += vmVector3(linearComponent.getX()*deltaImpulse,linearComponent.getY()*deltaImpulse,linearComponent.getZ()*deltaImpulse);
85
+ btVector3 tmp=c.m_angularComponentA*(btVector3(deltaImpulse,deltaImpulse,deltaImpulse));
86
+ body1.mDeltaAngularVelocity += vmVector3(tmp.getX(),tmp.getY(),tmp.getZ());
87
+ }
88
+
89
+ if (body2.mMassInv)
90
+ {
91
+ btVector3 linearComponent = -c.m_contactNormal*body2.mMassInv;
92
+ body2.mDeltaLinearVelocity += vmVector3(linearComponent.getX()*deltaImpulse,linearComponent.getY()*deltaImpulse,linearComponent.getZ()*deltaImpulse);
93
+ btVector3 tmp = c.m_angularComponentB*((btVector3(deltaImpulse,deltaImpulse,deltaImpulse)));//*m_angularFactor);
94
+ body2.mDeltaAngularVelocity += vmVector3(tmp.getX(),tmp.getY(),tmp.getZ());
95
+ }
96
+
97
+ //body1.internalApplyImpulse(c.m_contactNormal*body1.internalGetInvMass(),c.m_angularComponentA,deltaImpulse);
98
+ //body2.internalApplyImpulse(-c.m_contactNormal*body2.internalGetInvMass(),c.m_angularComponentB,deltaImpulse);
99
+
100
+ }
101
+
102
+
103
+ static SIMD_FORCE_INLINE
104
+ void pfxSolveLinearConstraintRow(btConstraintRow &constraint,
105
+ vmVector3 &deltaLinearVelocityA,vmVector3 &deltaAngularVelocityA,
106
+ float massInvA,const vmMatrix3 &inertiaInvA,const vmVector3 &rA,
107
+ vmVector3 &deltaLinearVelocityB,vmVector3 &deltaAngularVelocityB,
108
+ float massInvB,const vmMatrix3 &inertiaInvB,const vmVector3 &rB)
109
+ {
110
+ const vmVector3 normal(btReadVector3(constraint.m_normal));
111
+ btScalar deltaImpulse = constraint.m_rhs;
112
+ vmVector3 dVA = deltaLinearVelocityA + cross(deltaAngularVelocityA,rA);
113
+ vmVector3 dVB = deltaLinearVelocityB + cross(deltaAngularVelocityB,rB);
114
+ deltaImpulse -= constraint.m_jacDiagInv * dot(normal,dVA-dVB);
115
+ btScalar oldImpulse = constraint.m_accumImpulse;
116
+ constraint.m_accumImpulse = btClamped(oldImpulse + deltaImpulse,constraint.m_lowerLimit,constraint.m_upperLimit);
117
+ deltaImpulse = constraint.m_accumImpulse - oldImpulse;
118
+ deltaLinearVelocityA += deltaImpulse * massInvA * normal;
119
+ deltaAngularVelocityA += deltaImpulse * inertiaInvA * cross(rA,normal);
120
+ deltaLinearVelocityB -= deltaImpulse * massInvB * normal;
121
+ deltaAngularVelocityB -= deltaImpulse * inertiaInvB * cross(rB,normal);
122
+
123
+ }
124
+
125
+ void btSolveContactConstraint(
126
+ btConstraintRow &constraintResponse,
127
+ btConstraintRow &constraintFriction1,
128
+ btConstraintRow &constraintFriction2,
129
+ const vmVector3 &contactPointA,
130
+ const vmVector3 &contactPointB,
131
+ PfxSolverBody &solverBodyA,
132
+ PfxSolverBody &solverBodyB,
133
+ float friction
134
+ )
135
+ {
136
+ vmVector3 rA = rotate(solverBodyA.mOrientation,contactPointA);
137
+ vmVector3 rB = rotate(solverBodyB.mOrientation,contactPointB);
138
+
139
+ pfxSolveLinearConstraintRow(constraintResponse,
140
+ solverBodyA.mDeltaLinearVelocity,solverBodyA.mDeltaAngularVelocity,solverBodyA.mMassInv,solverBodyA.mInertiaInv,rA,
141
+ solverBodyB.mDeltaLinearVelocity,solverBodyB.mDeltaAngularVelocity,solverBodyB.mMassInv,solverBodyB.mInertiaInv,rB);
142
+
143
+ float mf = friction*fabsf(constraintResponse.m_accumImpulse);
144
+ constraintFriction1.m_lowerLimit = -mf;
145
+ constraintFriction1.m_upperLimit = mf;
146
+ constraintFriction2.m_lowerLimit = -mf;
147
+ constraintFriction2.m_upperLimit = mf;
148
+
149
+ pfxSolveLinearConstraintRow(constraintFriction1,
150
+ solverBodyA.mDeltaLinearVelocity,solverBodyA.mDeltaAngularVelocity,solverBodyA.mMassInv,solverBodyA.mInertiaInv,rA,
151
+ solverBodyB.mDeltaLinearVelocity,solverBodyB.mDeltaAngularVelocity,solverBodyB.mMassInv,solverBodyB.mInertiaInv,rB);
152
+
153
+ pfxSolveLinearConstraintRow(constraintFriction2,
154
+ solverBodyA.mDeltaLinearVelocity,solverBodyA.mDeltaAngularVelocity,solverBodyA.mMassInv,solverBodyA.mInertiaInv,rA,
155
+ solverBodyB.mDeltaLinearVelocity,solverBodyB.mDeltaAngularVelocity,solverBodyB.mMassInv,solverBodyB.mInertiaInv,rB);
156
+ }
157
+
158
+
159
+ void CustomSolveConstraintsTaskParallel(
160
+ const PfxParallelGroup *contactParallelGroup,const PfxParallelBatch *contactParallelBatches,
161
+ PfxConstraintPair *contactPairs,uint32_t numContactPairs,
162
+ btPersistentManifold* offsetContactManifolds,
163
+ const PfxParallelGroup *jointParallelGroup,const PfxParallelBatch *jointParallelBatches,
164
+ PfxConstraintPair *jointPairs,uint32_t numJointPairs,
165
+ btSolverConstraint* offsetSolverConstraints,
166
+ TrbState *offsetRigStates,
167
+ PfxSolverBody *offsetSolverBodies,
168
+ uint32_t numRigidBodies,
169
+ int iteration,unsigned int taskId,unsigned int numTasks,btBarrier *barrier)
170
+ {
171
+
172
+ PfxSolverBody staticBody;
173
+ staticBody.mMassInv = 0.f;
174
+ staticBody.mDeltaAngularVelocity=vmVector3(0,0,0);
175
+ staticBody.mDeltaLinearVelocity =vmVector3(0,0,0);
176
+
177
+
178
+ for(int k=0;k<iteration+1;k++) {
179
+ // Joint
180
+ for(uint32_t phaseId=0;phaseId<jointParallelGroup->numPhases;phaseId++) {
181
+ for(uint32_t batchId=0;batchId<jointParallelGroup->numBatches[phaseId];batchId++) {
182
+ uint32_t numPairs = jointParallelGroup->numPairs[phaseId*PFX_MAX_SOLVER_BATCHES+batchId];
183
+ if(batchId%numTasks == taskId && numPairs > 0) {
184
+ const PfxParallelBatch &batch = jointParallelBatches[phaseId*PFX_MAX_SOLVER_BATCHES+batchId];
185
+ for(uint32_t i=0;i<numPairs;i++) {
186
+ PfxConstraintPair &pair = jointPairs[batch.pairIndices[i]];
187
+ uint16_t iA = pfxGetRigidBodyIdA(pair);
188
+ uint16_t iB = pfxGetRigidBodyIdB(pair);
189
+
190
+
191
+ PfxSolverBody &solverBodyA = iA != 65535 ? offsetSolverBodies[iA] : staticBody;
192
+ PfxSolverBody &solverBodyB = iB != 65535 ? offsetSolverBodies[iB] : staticBody;
193
+
194
+ if(k==0) {
195
+
196
+ }
197
+ else {
198
+ btSolverConstraint* constraintRow = &offsetSolverConstraints[pfxGetContactId1(pair)];
199
+ int numRows = pfxGetNumConstraints(pair);
200
+ int i;
201
+ for (i=0;i<numRows;i++)
202
+ {
203
+ resolveSingleConstraintRowGeneric(solverBodyA,solverBodyB,constraintRow[i]);
204
+ }
205
+
206
+ }
207
+ }
208
+ }
209
+ }
210
+
211
+ barrier->sync();
212
+ }
213
+
214
+ // Contact
215
+ for(uint32_t phaseId=0;phaseId<contactParallelGroup->numPhases;phaseId++) {
216
+ for(uint32_t batchId=0;batchId<contactParallelGroup->numBatches[phaseId];batchId++) {
217
+ uint32_t numPairs = contactParallelGroup->numPairs[phaseId*PFX_MAX_SOLVER_BATCHES+batchId];
218
+ if(batchId%numTasks == taskId && numPairs > 0) {
219
+ const PfxParallelBatch &batch = contactParallelBatches[phaseId*PFX_MAX_SOLVER_BATCHES+batchId];
220
+ for(uint32_t i=0;i<numPairs;i++) {
221
+ PfxConstraintPair &pair = contactPairs[batch.pairIndices[i]];
222
+ uint16_t iA = pfxGetRigidBodyIdA(pair);
223
+ uint16_t iB = pfxGetRigidBodyIdB(pair);
224
+
225
+ btPersistentManifold& contact = offsetContactManifolds[pfxGetConstraintId1(pair)];
226
+
227
+
228
+ PfxSolverBody &solverBodyA = offsetSolverBodies[iA];
229
+ PfxSolverBody &solverBodyB = offsetSolverBodies[iB];
230
+
231
+ for(int j=0;j<contact.getNumContacts();j++) {
232
+ btManifoldPoint& cp = contact.getContactPoint(j);
233
+
234
+ if(k==0) {
235
+ vmVector3 rA = rotate(solverBodyA.mOrientation,btReadVector3(cp.m_localPointA));
236
+ vmVector3 rB = rotate(solverBodyB.mOrientation,btReadVector3(cp.m_localPointB));
237
+
238
+ for(int k=0;k<3;k++) {
239
+ vmVector3 normal = btReadVector3(cp.mConstraintRow[k].m_normal);
240
+ float deltaImpulse = cp.mConstraintRow[k].m_accumImpulse;
241
+ solverBodyA.mDeltaLinearVelocity += deltaImpulse * solverBodyA.mMassInv * normal;
242
+ solverBodyA.mDeltaAngularVelocity += deltaImpulse * solverBodyA.mInertiaInv * cross(rA,normal);
243
+ solverBodyB.mDeltaLinearVelocity -= deltaImpulse * solverBodyB.mMassInv * normal;
244
+ solverBodyB.mDeltaAngularVelocity -= deltaImpulse * solverBodyB.mInertiaInv * cross(rB,normal);
245
+ }
246
+ }
247
+ else {
248
+ btSolveContactConstraint(
249
+ cp.mConstraintRow[0],
250
+ cp.mConstraintRow[1],
251
+ cp.mConstraintRow[2],
252
+ btReadVector3(cp.m_localPointA),
253
+ btReadVector3(cp.m_localPointB),
254
+ solverBodyA,
255
+ solverBodyB,
256
+ cp.m_combinedFriction
257
+ );
258
+ }
259
+ }
260
+ }
261
+ }
262
+ }
263
+
264
+ if (barrier)
265
+ barrier->sync();
266
+ }
267
+ }
268
+ }
269
+
270
+ void CustomPostSolverTask(
271
+ TrbState *states,
272
+ PfxSolverBody *solverBodies,
273
+ uint32_t numRigidBodies)
274
+ {
275
+ for(uint32_t i=0;i<numRigidBodies;i++) {
276
+ TrbState &state = states[i];
277
+ PfxSolverBody &solverBody = solverBodies[i];
278
+ state.setLinearVelocity(state.getLinearVelocity()+solverBody.mDeltaLinearVelocity);
279
+ state.setAngularVelocity(state.getAngularVelocity()+solverBody.mDeltaAngularVelocity);
280
+ }
281
+ }
282
+
283
+ void* SolverlsMemoryFunc()
284
+ {
285
+ //don't create local store memory, just return 0
286
+ return 0;
287
+ }
288
+
289
+
290
+ static SIMD_FORCE_INLINE
291
+ void pfxGetPlaneSpace(const vmVector3& n, vmVector3& p, vmVector3& q)
292
+ {
293
+ if(fabsf(n[2]) > 0.707f) {
294
+ // choose p in y-z plane
295
+ float a = n[1]*n[1] + n[2]*n[2];
296
+ float k = 1.0f/sqrtf(a);
297
+ p[0] = 0;
298
+ p[1] = -n[2]*k;
299
+ p[2] = n[1]*k;
300
+ // set q = n x p
301
+ q[0] = a*k;
302
+ q[1] = -n[0]*p[2];
303
+ q[2] = n[0]*p[1];
304
+ }
305
+ else {
306
+ // choose p in x-y plane
307
+ float a = n[0]*n[0] + n[1]*n[1];
308
+ float k = 1.0f/sqrtf(a);
309
+ p[0] = -n[1]*k;
310
+ p[1] = n[0]*k;
311
+ p[2] = 0;
312
+ // set q = n x p
313
+ q[0] = -n[2]*p[1];
314
+ q[1] = n[2]*p[0];
315
+ q[2] = a*k;
316
+ }
317
+ }
318
+
319
+
320
+
321
+ #define PFX_CONTACT_SLOP 0.001f
322
+
323
+ void btSetupContactConstraint(
324
+ btConstraintRow &constraintResponse,
325
+ btConstraintRow &constraintFriction1,
326
+ btConstraintRow &constraintFriction2,
327
+ float penetrationDepth,
328
+ float restitution,
329
+ float friction,
330
+ const vmVector3 &contactNormal,
331
+ const vmVector3 &contactPointA,
332
+ const vmVector3 &contactPointB,
333
+ const TrbState &stateA,
334
+ const TrbState &stateB,
335
+ PfxSolverBody &solverBodyA,
336
+ PfxSolverBody &solverBodyB,
337
+ float separateBias,
338
+ float timeStep
339
+ )
340
+ {
341
+ vmVector3 rA = rotate(solverBodyA.mOrientation,contactPointA);
342
+ vmVector3 rB = rotate(solverBodyB.mOrientation,contactPointB);
343
+
344
+ vmMatrix3 K = vmMatrix3::scale(vmVector3(solverBodyA.mMassInv + solverBodyB.mMassInv)) -
345
+ crossMatrix(rA) * solverBodyA.mInertiaInv * crossMatrix(rA) -
346
+ crossMatrix(rB) * solverBodyB.mInertiaInv * crossMatrix(rB);
347
+
348
+ vmVector3 vA = stateA.getLinearVelocity() + cross(stateA.getAngularVelocity(),rA);
349
+ vmVector3 vB = stateB.getLinearVelocity() + cross(stateB.getAngularVelocity(),rB);
350
+ vmVector3 vAB = vA-vB;
351
+
352
+ vmVector3 tangent1,tangent2;
353
+ btPlaneSpace1(contactNormal,tangent1,tangent2);
354
+
355
+ // constraintResponse.m_accumImpulse = 0.f;
356
+ // constraintFriction1.m_accumImpulse = 0.f;
357
+ // constraintFriction2.m_accumImpulse = 0.f;
358
+
359
+ // Contact Constraint
360
+ {
361
+ vmVector3 normal = contactNormal;
362
+
363
+ float denom = dot(K*normal,normal);
364
+
365
+ constraintResponse.m_rhs = -(1.0f+restitution)*dot(vAB,normal); // velocity error
366
+ constraintResponse.m_rhs -= (separateBias * btMin(0.0f,penetrationDepth+PFX_CONTACT_SLOP)) / timeStep; // position error
367
+ constraintResponse.m_rhs /= denom;
368
+ constraintResponse.m_jacDiagInv = 1.0f/denom;
369
+ constraintResponse.m_lowerLimit = 0.0f;
370
+ constraintResponse.m_upperLimit = SIMD_INFINITY;
371
+ btStoreVector3(normal,constraintResponse.m_normal);
372
+ }
373
+
374
+ // Friction Constraint 1
375
+ {
376
+ vmVector3 normal = tangent1;
377
+
378
+ float denom = dot(K*normal,normal);
379
+
380
+ constraintFriction1.m_jacDiagInv = 1.0f/denom;
381
+ constraintFriction1.m_rhs = -dot(vAB,normal);
382
+ constraintFriction1.m_rhs *= constraintFriction1.m_jacDiagInv;
383
+ constraintFriction1.m_lowerLimit = 0.0f;
384
+ constraintFriction1.m_upperLimit = SIMD_INFINITY;
385
+ btStoreVector3(normal,constraintFriction1.m_normal);
386
+ }
387
+
388
+ // Friction Constraint 2
389
+ {
390
+ vmVector3 normal = tangent2;
391
+
392
+ float denom = dot(K*normal,normal);
393
+
394
+ constraintFriction2.m_jacDiagInv = 1.0f/denom;
395
+ constraintFriction2.m_rhs = -dot(vAB,normal);
396
+ constraintFriction2.m_rhs *= constraintFriction2.m_jacDiagInv;
397
+ constraintFriction2.m_lowerLimit = 0.0f;
398
+ constraintFriction2.m_upperLimit = SIMD_INFINITY;
399
+ btStoreVector3(normal,constraintFriction2.m_normal);
400
+ }
401
+ }
402
+
403
+
404
+ void CustomSetupContactConstraintsTask(
405
+ PfxConstraintPair *contactPairs,uint32_t numContactPairs,
406
+ btPersistentManifold* offsetContactManifolds,
407
+ TrbState *offsetRigStates,
408
+ PfxSolverBody *offsetSolverBodies,
409
+ uint32_t numRigidBodies,
410
+ float separateBias,
411
+ float timeStep)
412
+ {
413
+ for(uint32_t i=0;i<numContactPairs;i++) {
414
+ PfxConstraintPair &pair = contactPairs[i];
415
+ if(!pfxGetActive(pair) || pfxGetNumConstraints(pair) == 0 ||
416
+ ((pfxGetMotionMaskA(pair)&PFX_MOTION_MASK_STATIC) && (pfxGetMotionMaskB(pair)&PFX_MOTION_MASK_STATIC)) ) {
417
+ continue;
418
+ }
419
+
420
+ uint16_t iA = pfxGetRigidBodyIdA(pair);
421
+ uint16_t iB = pfxGetRigidBodyIdB(pair);
422
+
423
+ int id = pfxGetConstraintId1(pair);
424
+ btPersistentManifold& contact = offsetContactManifolds[id];
425
+
426
+
427
+ TrbState &stateA = offsetRigStates[iA];
428
+ // PfxRigBody &bodyA = offsetRigBodies[iA];
429
+ PfxSolverBody &solverBodyA = offsetSolverBodies[iA];
430
+
431
+ TrbState &stateB = offsetRigStates[iB];
432
+ // PfxRigBody &bodyB = offsetRigBodies[iB];
433
+ PfxSolverBody &solverBodyB = offsetSolverBodies[iB];
434
+
435
+ float restitution = 0.5f * (solverBodyA.restitution + solverBodyB.restitution);
436
+ //if(contact.getDuration() > 1) restitution = 0.0f;
437
+
438
+ float friction = sqrtf(solverBodyA.friction * solverBodyB.friction);
439
+
440
+ for(int j=0;j<contact.getNumContacts();j++) {
441
+ btManifoldPoint& cp = contact.getContactPoint(j);
442
+
443
+ btSetupContactConstraint(
444
+ cp.mConstraintRow[0],
445
+ cp.mConstraintRow[1],
446
+ cp.mConstraintRow[2],
447
+ cp.getDistance(),
448
+ restitution,
449
+ friction,
450
+ btReadVector3(cp.m_normalWorldOnB),//.mConstraintRow[0].m_normal),
451
+ btReadVector3(cp.m_localPointA),
452
+ btReadVector3(cp.m_localPointB),
453
+ stateA,
454
+ stateB,
455
+ solverBodyA,
456
+ solverBodyB,
457
+ separateBias,
458
+ timeStep
459
+ );
460
+ }
461
+
462
+ //contact.setCompositeFriction(friction);
463
+ }
464
+ }
465
+
466
+ void SolverThreadFunc(void* userPtr,void* lsMemory)
467
+ {
468
+ btConstraintSolverIO* io = (btConstraintSolverIO*)(userPtr);//arg->io);
469
+ btCriticalSection* criticalsection = io->setupContactConstraints.criticalSection;
470
+
471
+
472
+ //CustomCriticalSection *criticalsection = &io->m_cs;
473
+ switch(io->cmd) {
474
+
475
+ case PFX_CONSTRAINT_SOLVER_CMD_SOLVE_CONSTRAINTS:
476
+ CustomSolveConstraintsTaskParallel(
477
+ io->solveConstraints.contactParallelGroup,
478
+ io->solveConstraints.contactParallelBatches,
479
+ io->solveConstraints.contactPairs,
480
+ io->solveConstraints.numContactPairs,
481
+ io->solveConstraints.offsetContactManifolds,
482
+
483
+ io->solveConstraints.jointParallelGroup,
484
+ io->solveConstraints.jointParallelBatches,
485
+ io->solveConstraints.jointPairs,
486
+ io->solveConstraints.numJointPairs,
487
+ io->solveConstraints.offsetSolverConstraints,
488
+ io->solveConstraints.offsetRigStates1,
489
+ io->solveConstraints.offsetSolverBodies,
490
+ io->solveConstraints.numRigidBodies,
491
+ io->solveConstraints.iteration,
492
+
493
+ io->solveConstraints.taskId,
494
+ io->maxTasks1,
495
+ io->solveConstraints.barrier
496
+ );
497
+ break;
498
+
499
+ case PFX_CONSTRAINT_SOLVER_CMD_POST_SOLVER:
500
+ CustomPostSolverTask( io->postSolver.states,io->postSolver.solverBodies, io->postSolver.numRigidBodies);
501
+ break;
502
+
503
+
504
+ case PFX_CONSTRAINT_SOLVER_CMD_SETUP_CONTACT_CONSTRAINTS:
505
+ {
506
+ bool empty = false;
507
+ while(!empty) {
508
+ int start,batch;
509
+
510
+ criticalsection->lock();
511
+
512
+ start = (int)criticalsection->getSharedParam(0);
513
+ batch = (int)criticalsection->getSharedParam(1);
514
+
515
+ //PFX_PRINTF("taskId %d start %d num %d\n",arg->taskId,start,batch);
516
+
517
+ // ���̃o�b�t�@���Z�b�g
518
+ int nextStart = start + batch;
519
+ int rest = btMax((int)io->setupContactConstraints.numContactPairs1 - nextStart,0);
520
+ int nextBatch = (rest > batch)?batch:rest;
521
+
522
+ criticalsection->setSharedParam(0,nextStart);
523
+ criticalsection->setSharedParam(1,nextBatch);
524
+
525
+ criticalsection->unlock();
526
+
527
+ if(batch > 0) {
528
+ CustomSetupContactConstraintsTask(
529
+ io->setupContactConstraints.offsetContactPairs+start,batch,
530
+ io->setupContactConstraints.offsetContactManifolds,
531
+ io->setupContactConstraints.offsetRigStates,
532
+ // io->setupContactConstraints.offsetRigBodies,
533
+ io->setupContactConstraints.offsetSolverBodies,
534
+ io->setupContactConstraints.numRigidBodies,
535
+ io->setupContactConstraints.separateBias,
536
+ io->setupContactConstraints.timeStep);
537
+ }
538
+ else {
539
+ empty = true;
540
+ }
541
+ }
542
+ }
543
+ break;
544
+
545
+ default:
546
+ {
547
+ btAssert(0);
548
+ }
549
+ }
550
+
551
+ }
552
+
553
+
554
+ void CustomSetupContactConstraintsNew(
555
+ PfxConstraintPair *contactPairs1,uint32_t numContactPairs,
556
+ btPersistentManifold *offsetContactManifolds,
557
+ TrbState *offsetRigStates,
558
+ PfxSolverBody *offsetSolverBodies,
559
+ uint32_t numRigidBodies,
560
+ float separationBias,
561
+ float timeStep,
562
+ class btThreadSupportInterface* threadSupport,
563
+ btCriticalSection* criticalSection,
564
+ btConstraintSolverIO *io
565
+ )
566
+ {
567
+ int maxTasks = threadSupport->getNumTasks();
568
+
569
+ int div = (int)maxTasks * 4;
570
+ int batch = ((int)numContactPairs + div - 1) / div;
571
+ #ifdef __PPU__
572
+ BulletPE2ConstraintSolverSpursSupport* spursThread = (BulletPE2ConstraintSolverSpursSupport*) threadSupport;
573
+ #endif
574
+ if (criticalSection)
575
+ {
576
+ criticalSection->setSharedParam(0,0);
577
+ criticalSection->setSharedParam(1,btMin(batch,64)); // batched number
578
+ } else
579
+ {
580
+ #ifdef __PPU__
581
+ spursThread->setSharedParam(0,0);
582
+ spursThread->setSharedParam(1,btMin(batch,64)); // batched number
583
+ #endif //__PPU__
584
+ }
585
+
586
+ for(int t=0;t<maxTasks;t++) {
587
+ io[t].cmd = PFX_CONSTRAINT_SOLVER_CMD_SETUP_CONTACT_CONSTRAINTS;
588
+ io[t].setupContactConstraints.offsetContactPairs = contactPairs1;
589
+ io[t].setupContactConstraints.numContactPairs1 = numContactPairs;
590
+ io[t].setupContactConstraints.offsetRigStates = offsetRigStates;
591
+ io[t].setupContactConstraints.offsetContactManifolds = offsetContactManifolds;
592
+ io[t].setupContactConstraints.offsetSolverBodies = offsetSolverBodies;
593
+ io[t].setupContactConstraints.numRigidBodies = numRigidBodies;
594
+ io[t].setupContactConstraints.separateBias = separationBias;
595
+ io[t].setupContactConstraints.timeStep = timeStep;
596
+ io[t].setupContactConstraints.criticalSection = criticalSection;
597
+ io[t].maxTasks1 = maxTasks;
598
+ #ifdef __PPU__
599
+ io[t].barrierAddr2 = (unsigned int)spursThread->getBarrierAddress();
600
+ io[t].criticalsectionAddr2 = (unsigned int)spursThread->getCriticalSectionAddress();
601
+ #endif
602
+
603
+
604
+ //#define SEQUENTIAL_SETUP
605
+ #ifdef SEQUENTIAL_SETUP
606
+ CustomSetupContactConstraintsTask(contactPairs1,numContactPairs,offsetContactManifolds,offsetRigStates,offsetSolverBodies,numRigidBodies,separationBias,timeStep);
607
+ #else
608
+ threadSupport->sendRequest(1,(ppu_address_t)&io[t],t);
609
+ #endif
610
+
611
+ }
612
+ #ifndef SEQUENTIAL_SETUP
613
+ unsigned int arg0,arg1;
614
+ for(int t=0;t<maxTasks;t++) {
615
+ arg0 = t;
616
+ threadSupport->waitForResponse(&arg0,&arg1);
617
+ }
618
+ #endif //SEQUENTIAL_SETUP
619
+
620
+ }
621
+
622
+
623
+ void CustomSplitConstraints(
624
+ PfxConstraintPair *pairs,uint32_t numPairs,
625
+ PfxParallelGroup &group,PfxParallelBatch *batches,
626
+ uint32_t numTasks,
627
+ uint32_t numRigidBodies,
628
+ void *poolBuff,
629
+ uint32_t poolBytes
630
+ )
631
+ {
632
+ HeapManager pool((unsigned char*)poolBuff,poolBytes);
633
+
634
+ // �X�e�[�g�`�F�b�N�p�r�b�g�t���O�e�[�u��
635
+ int bufSize = sizeof(uint8_t)*numRigidBodies;
636
+ bufSize = ((bufSize+127)>>7)<<7; // 128 bytes alignment
637
+ uint8_t *bodyTable = (uint8_t*)pool.allocate(bufSize,HeapManager::ALIGN128);
638
+
639
+ // �y�A�`�F�b�N�p�r�b�g�t���O�e�[�u��
640
+ uint32_t *pairTable;
641
+ size_t allocSize = sizeof(uint32_t)*((numPairs+31)/32);
642
+ pairTable = (uint32_t*)pool.allocate(allocSize);
643
+ memset(pairTable,0,allocSize);
644
+
645
+ // �ڕW�Ƃ��镪����
646
+ uint32_t targetCount = btMax(uint32_t(PFX_MIN_SOLVER_PAIRS),btMin(numPairs / (numTasks*2),uint32_t(PFX_MAX_SOLVER_PAIRS)));
647
+ uint32_t startIndex = 0;
648
+
649
+ uint32_t phaseId;
650
+ uint32_t batchId;
651
+ uint32_t totalCount=0;
652
+
653
+ uint32_t maxBatches = btMin(numTasks,uint32_t(PFX_MAX_SOLVER_BATCHES));
654
+
655
+ for(phaseId=0;phaseId<PFX_MAX_SOLVER_PHASES&&totalCount<numPairs;phaseId++) {
656
+ bool startIndexCheck = true;
657
+
658
+ group.numBatches[phaseId] = 0;
659
+
660
+ uint32_t i = startIndex;
661
+
662
+ // �`�F�b�N�p�r�b�g�t���O�e�[�u�����N���A
663
+ memset(bodyTable,0xff,bufSize);
664
+
665
+ for(batchId=0;i<numPairs&&totalCount<numPairs&&batchId<maxBatches;batchId++) {
666
+ uint32_t pairCount=0;
667
+
668
+ PfxParallelBatch &batch = batches[phaseId*PFX_MAX_SOLVER_BATCHES+batchId];
669
+ uint32_t pairId = 0;
670
+
671
+ for(;i<numPairs&&pairCount<targetCount;i++) {
672
+ uint32_t idxP = i>>5;
673
+ uint32_t maskP = 1L << (i & 31);
674
+
675
+ //pair is already assigned to a phase/batch
676
+ if(pairTable[idxP] & maskP) {
677
+ continue;
678
+ }
679
+
680
+ uint32_t idxA = pfxGetRigidBodyIdA(pairs[i]);
681
+ uint32_t idxB = pfxGetRigidBodyIdB(pairs[i]);
682
+
683
+ // �����Ƃ��A�N�e�B�u�łȂ��A�܂��͏Փ˓_���O�̃y�A�͓o�^�Ώۂ���͂���
684
+ if(!pfxGetActive(pairs[i]) || pfxGetNumConstraints(pairs[i]) == 0 ||
685
+ ((pfxGetMotionMaskA(pairs[i])&PFX_MOTION_MASK_STATIC) && (pfxGetMotionMaskB(pairs[i])&PFX_MOTION_MASK_STATIC)) ) {
686
+ if(startIndexCheck)
687
+ startIndex++;
688
+ //assign pair -> skip it because it has no constraints
689
+ pairTable[idxP] |= maskP;
690
+ totalCount++;
691
+ continue;
692
+ }
693
+
694
+ // �ˑ����̃`�F�b�N
695
+ if( (bodyTable[idxA] != batchId && bodyTable[idxA] != 0xff) ||
696
+ (bodyTable[idxB] != batchId && bodyTable[idxB] != 0xff) ) {
697
+ startIndexCheck = false;
698
+ //bodies of the pair are already assigned to another batch within this phase
699
+ continue;
700
+ }
701
+
702
+ // �ˑ�������e�[�u���ɓo�^
703
+ if(pfxGetMotionMaskA(pairs[i])&PFX_MOTION_MASK_DYNAMIC)
704
+ bodyTable[idxA] = batchId;
705
+ if(pfxGetMotionMaskB(pairs[i])&PFX_MOTION_MASK_DYNAMIC)
706
+ bodyTable[idxB] = batchId;
707
+
708
+ if(startIndexCheck)
709
+ startIndex++;
710
+
711
+ pairTable[idxP] |= maskP;
712
+ //add the pair 'i' to the current batch
713
+ batch.pairIndices[pairId++] = i;
714
+ pairCount++;
715
+ }
716
+
717
+ group.numPairs[phaseId*PFX_MAX_SOLVER_BATCHES+batchId] = (uint16_t)pairId;
718
+ totalCount += pairCount;
719
+ }
720
+
721
+ group.numBatches[phaseId] = batchId;
722
+ }
723
+
724
+ group.numPhases = phaseId;
725
+
726
+ pool.clear();
727
+ }
728
+
729
+
730
+
731
+ void CustomSolveConstraintsParallel(
732
+ PfxConstraintPair *contactPairs,uint32_t numContactPairs,
733
+
734
+ PfxConstraintPair *jointPairs,uint32_t numJointPairs,
735
+ btPersistentManifold* offsetContactManifolds,
736
+ btSolverConstraint* offsetSolverConstraints,
737
+ TrbState *offsetRigStates,
738
+ PfxSolverBody *offsetSolverBodies,
739
+ uint32_t numRigidBodies,
740
+ struct btConstraintSolverIO* io,
741
+ class btThreadSupportInterface* threadSupport,
742
+ int iteration,
743
+ void* poolBuf,
744
+ int poolBytes,
745
+ class btBarrier* barrier)
746
+ {
747
+
748
+ int maxTasks = threadSupport->getNumTasks();
749
+ // config.taskManager->setTaskEntry(PFX_SOLVER_ENTRY);
750
+
751
+ HeapManager pool((unsigned char*)poolBuf,poolBytes);
752
+
753
+ {
754
+ PfxParallelGroup *cgroup = (PfxParallelGroup*)pool.allocate(sizeof(PfxParallelGroup));
755
+ PfxParallelBatch *cbatches = (PfxParallelBatch*)pool.allocate(sizeof(PfxParallelBatch)*(PFX_MAX_SOLVER_PHASES*PFX_MAX_SOLVER_BATCHES),128);
756
+ PfxParallelGroup *jgroup = (PfxParallelGroup*)pool.allocate(sizeof(PfxParallelGroup));
757
+ PfxParallelBatch *jbatches = (PfxParallelBatch*)pool.allocate(sizeof(PfxParallelBatch)*(PFX_MAX_SOLVER_PHASES*PFX_MAX_SOLVER_BATCHES),128);
758
+
759
+ uint32_t tmpBytes = poolBytes - 2 * (sizeof(PfxParallelGroup) + sizeof(PfxParallelBatch)*(PFX_MAX_SOLVER_PHASES*PFX_MAX_SOLVER_BATCHES) + 128);
760
+ void *tmpBuff = pool.allocate(tmpBytes);
761
+
762
+ {
763
+ BT_PROFILE("CustomSplitConstraints");
764
+ CustomSplitConstraints(contactPairs,numContactPairs,*cgroup,cbatches,maxTasks,numRigidBodies,tmpBuff,tmpBytes);
765
+ CustomSplitConstraints(jointPairs,numJointPairs,*jgroup,jbatches,maxTasks,numRigidBodies,tmpBuff,tmpBytes);
766
+ }
767
+
768
+ {
769
+ BT_PROFILE("PFX_CONSTRAINT_SOLVER_CMD_SOLVE_CONSTRAINTS");
770
+ //#define SOLVE_SEQUENTIAL
771
+ #ifdef SOLVE_SEQUENTIAL
772
+ CustomSolveConstraintsTask(
773
+ io->solveConstraints.contactParallelGroup,
774
+ io->solveConstraints.contactParallelBatches,
775
+ io->solveConstraints.contactPairs,
776
+ io->solveConstraints.numContactPairs,
777
+ io->solveConstraints.offsetContactManifolds,
778
+
779
+ io->solveConstraints.jointParallelGroup,
780
+ io->solveConstraints.jointParallelBatches,
781
+ io->solveConstraints.jointPairs,
782
+ io->solveConstraints.numJointPairs,
783
+ io->solveConstraints.offsetJoints,
784
+
785
+ io->solveConstraints.offsetRigStates,
786
+ io->solveConstraints.offsetSolverBodies,
787
+ io->solveConstraints.numRigidBodies,
788
+ io->solveConstraints.iteration,0,1,0);//arg->taskId,1,0);//,arg->maxTasks,arg->barrier);
789
+ #else
790
+ for(int t=0;t<maxTasks;t++) {
791
+ io[t].cmd = PFX_CONSTRAINT_SOLVER_CMD_SOLVE_CONSTRAINTS;
792
+ io[t].solveConstraints.contactParallelGroup = cgroup;
793
+ io[t].solveConstraints.contactParallelBatches = cbatches;
794
+ io[t].solveConstraints.contactPairs = contactPairs;
795
+ io[t].solveConstraints.numContactPairs = numContactPairs;
796
+ io[t].solveConstraints.offsetContactManifolds = offsetContactManifolds;
797
+ io[t].solveConstraints.jointParallelGroup = jgroup;
798
+ io[t].solveConstraints.jointParallelBatches = jbatches;
799
+ io[t].solveConstraints.jointPairs = jointPairs;
800
+ io[t].solveConstraints.numJointPairs = numJointPairs;
801
+ io[t].solveConstraints.offsetSolverConstraints = offsetSolverConstraints;
802
+ io[t].solveConstraints.offsetRigStates1 = offsetRigStates;
803
+ io[t].solveConstraints.offsetSolverBodies = offsetSolverBodies;
804
+ io[t].solveConstraints.numRigidBodies = numRigidBodies;
805
+ io[t].solveConstraints.iteration = iteration;
806
+ io[t].solveConstraints.taskId = t;
807
+ io[t].solveConstraints.barrier = barrier;
808
+
809
+ io[t].maxTasks1 = maxTasks;
810
+ #ifdef __PPU__
811
+ BulletPE2ConstraintSolverSpursSupport* spursThread = (BulletPE2ConstraintSolverSpursSupport*) threadSupport;
812
+ io[t].barrierAddr2 = (unsigned int) spursThread->getBarrierAddress();
813
+ io[t].criticalsectionAddr2 = (unsigned int)spursThread->getCriticalSectionAddress();
814
+ #endif
815
+
816
+ threadSupport->sendRequest(1,(ppu_address_t)&io[t],t);
817
+ }
818
+
819
+ unsigned int arg0,arg1;
820
+ for(int t=0;t<maxTasks;t++) {
821
+ arg0 = t;
822
+ threadSupport->waitForResponse(&arg0,&arg1);
823
+ }
824
+ #endif
825
+ }
826
+ pool.clear();
827
+ }
828
+
829
+ {
830
+ BT_PROFILE("PFX_CONSTRAINT_SOLVER_CMD_POST_SOLVER");
831
+ int batch = ((int)numRigidBodies + maxTasks - 1) / maxTasks;
832
+ int rest = (int)numRigidBodies;
833
+ int start = 0;
834
+
835
+ for(int t=0;t<maxTasks;t++) {
836
+ int num = (rest - batch ) > 0 ? batch : rest;
837
+ io[t].cmd = PFX_CONSTRAINT_SOLVER_CMD_POST_SOLVER;
838
+ io[t].postSolver.states = offsetRigStates + start;
839
+ io[t].postSolver.solverBodies = offsetSolverBodies + start;
840
+ io[t].postSolver.numRigidBodies = (uint32_t)num;
841
+ io[t].maxTasks1 = maxTasks;
842
+ #ifdef __PPU__
843
+ BulletPE2ConstraintSolverSpursSupport* spursThread = (BulletPE2ConstraintSolverSpursSupport*) threadSupport;
844
+ io[t].barrierAddr2 = (unsigned int)spursThread->getBarrierAddress();
845
+ io[t].criticalsectionAddr2 = (unsigned int)spursThread->getCriticalSectionAddress();
846
+ #endif
847
+
848
+ #ifdef SOLVE_SEQUENTIAL
849
+ CustomPostSolverTask( io[t].postSolver.states,io[t].postSolver.solverBodies, io[t].postSolver.numRigidBodies);
850
+ #else
851
+ threadSupport->sendRequest(1,(ppu_address_t)&io[t],t);
852
+ #endif
853
+ rest -= num;
854
+ start += num;
855
+ }
856
+
857
+ unsigned int arg0,arg1;
858
+ for(int t=0;t<maxTasks;t++) {
859
+ #ifndef SOLVE_SEQUENTIAL
860
+ arg0 = t;
861
+ threadSupport->waitForResponse(&arg0,&arg1);
862
+ #endif
863
+ }
864
+ }
865
+
866
+ }
867
+
868
+
869
+
870
+ void BPE_customConstraintSolverSequentialNew(unsigned int new_num, PfxBroadphasePair *new_pairs1 ,
871
+ btPersistentManifold* offsetContactManifolds,
872
+ TrbState* states,int numRigidBodies,
873
+ struct PfxSolverBody* solverBodies,
874
+ PfxConstraintPair* jointPairs, unsigned int numJoints,
875
+ btSolverConstraint* offsetSolverConstraints,
876
+ float separateBias,
877
+ float timeStep,
878
+ int iteration,
879
+ btThreadSupportInterface* solverThreadSupport,
880
+ btCriticalSection* criticalSection,
881
+ struct btConstraintSolverIO* solverIO,
882
+ btBarrier* barrier
883
+ )
884
+ {
885
+
886
+ {
887
+ BT_PROFILE("pfxSetupConstraints");
888
+
889
+ for(uint32_t i=0;i<numJoints;i++) {
890
+ // ���̍X�V
891
+ PfxConstraintPair &pair = jointPairs[i];
892
+ int idA = pfxGetRigidBodyIdA(pair);
893
+
894
+ if (idA != 65535)
895
+ {
896
+ pfxSetMotionMaskA(pair,states[pfxGetRigidBodyIdA(pair)].getMotionMask());
897
+ }
898
+ else
899
+ {
900
+ pfxSetMotionMaskA(pair,PFX_MOTION_MASK_STATIC);
901
+ }
902
+ int idB = pfxGetRigidBodyIdB(pair);
903
+ if (idB!= 65535)
904
+ {
905
+ pfxSetMotionMaskB(pair,states[pfxGetRigidBodyIdB(pair)].getMotionMask());
906
+ } else
907
+ {
908
+ pfxSetMotionMaskB(pair,PFX_MOTION_MASK_STATIC);
909
+ }
910
+ }
911
+
912
+ // CustomSetupJointConstraintsSeq( jointPairs,numJoints,joints, states, solverBodies, numRigidBodies, timeStep);
913
+
914
+ #ifdef SEQUENTIAL_SETUP
915
+ CustomSetupContactConstraintsSeqNew(
916
+ (PfxConstraintPair*)new_pairs1,new_num,contacts,
917
+ states,
918
+ solverBodies,
919
+ numRigidBodies,
920
+ separateBias,
921
+ timeStep);
922
+ #else
923
+ CustomSetupContactConstraintsNew(
924
+ (PfxConstraintPair*)new_pairs1,new_num,
925
+ offsetContactManifolds,
926
+ states,
927
+ solverBodies,
928
+ numRigidBodies,
929
+ separateBias,
930
+ timeStep,
931
+ solverThreadSupport,
932
+ criticalSection,solverIO
933
+ );
934
+
935
+ #endif //SEQUENTIAL_SETUP
936
+
937
+ }
938
+ {
939
+ BT_PROFILE("pfxSolveConstraints");
940
+
941
+ //#define SEQUENTIAL
942
+ #ifdef SEQUENTIAL
943
+ CustomSolveConstraintsSeq(
944
+ (PfxConstraintPair*)new_pairs1,new_num,contacts,
945
+ jointPairs,numJoints,
946
+ states,
947
+ solverBodies,
948
+ numRigidBodies,
949
+ separateBias,
950
+ timeStep,
951
+ iteration);
952
+ #else //SEQUENTIAL
953
+ CustomSolveConstraintsParallel(
954
+ (PfxConstraintPair*)new_pairs1,new_num,
955
+ jointPairs,numJoints,
956
+ offsetContactManifolds,
957
+ offsetSolverConstraints,
958
+ states,
959
+ solverBodies,
960
+ numRigidBodies,
961
+ solverIO, solverThreadSupport,
962
+ iteration,
963
+ tmp_buff,
964
+ TMP_BUFF_BYTES,
965
+ barrier
966
+ );
967
+
968
+ #endif //SEQUENTIAL
969
+ }
970
+
971
+ }
972
+
973
+
974
+ struct btParallelSolverMemoryCache
975
+ {
976
+ btAlignedObjectArray<TrbState> m_mystates;
977
+ btAlignedObjectArray<PfxSolverBody> m_mysolverbodies;
978
+ btAlignedObjectArray<PfxBroadphasePair> m_mypairs;
979
+ btAlignedObjectArray<PfxConstraintPair> m_jointPairs;
980
+
981
+ };
982
+
983
+
984
+ btConstraintSolverIO* createSolverIO(int numThreads)
985
+ {
986
+ return new btConstraintSolverIO[numThreads];
987
+ }
988
+
989
+ btParallelConstraintSolver::btParallelConstraintSolver(btThreadSupportInterface* solverThreadSupport)
990
+ {
991
+
992
+ m_solverThreadSupport = solverThreadSupport;//createSolverThreadSupport(maxNumThreads);
993
+ m_solverIO = createSolverIO(m_solverThreadSupport->getNumTasks());
994
+
995
+ m_barrier = m_solverThreadSupport->createBarrier();
996
+ m_criticalSection = m_solverThreadSupport->createCriticalSection();
997
+
998
+ m_memoryCache = new btParallelSolverMemoryCache();
999
+ }
1000
+
1001
+ btParallelConstraintSolver::~btParallelConstraintSolver()
1002
+ {
1003
+ delete m_memoryCache;
1004
+ delete m_solverIO;
1005
+ }
1006
+
1007
+
1008
+
1009
+ btScalar btParallelConstraintSolver::solveGroup(btCollisionObject** bodies1,int numRigidBodies,btPersistentManifold** manifoldPtr,int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher)
1010
+ {
1011
+
1012
+ /* int sz = sizeof(PfxSolverBody);
1013
+ int sz2 = sizeof(vmVector3);
1014
+ int sz3 = sizeof(vmMatrix3);
1015
+ int sz4 = sizeof(vmQuat);
1016
+ int sz5 = sizeof(btConstraintRow);
1017
+ int sz6 = sizeof(btSolverConstraint);
1018
+ int sz7 = sizeof(TrbState);
1019
+ */
1020
+
1021
+ btPersistentManifold* offsetContactManifolds= (btPersistentManifold*) dispatcher->getInternalManifoldPool()->getPoolAddress();
1022
+
1023
+
1024
+ m_memoryCache->m_mysolverbodies.resize(numRigidBodies);
1025
+ m_memoryCache->m_mystates.resize(numRigidBodies);
1026
+
1027
+ {
1028
+ BT_PROFILE("create states and solver bodies");
1029
+ for (int i=0;i<numRigidBodies;i++)
1030
+ {
1031
+ btCollisionObject* obj = bodies1[i];
1032
+ obj->setCompanionId(i);
1033
+
1034
+ PfxSolverBody& solverBody = m_memoryCache->m_mysolverbodies[i];
1035
+ btRigidBody* rb = btRigidBody::upcast(obj);
1036
+ TrbState& state = m_memoryCache->m_mystates[i];
1037
+
1038
+ state.reset();
1039
+ const btQuaternion& orgOri = obj->getWorldTransform().getRotation();
1040
+ vmQuat orn(orgOri.getX(),orgOri.getY(),orgOri.getZ(),orgOri.getW());
1041
+ state.setPosition(getVmVector3(obj->getWorldTransform().getOrigin()));
1042
+ state.setOrientation(orn);
1043
+ state.setPosition(state.getPosition());
1044
+ state.setRigidBodyId(i);
1045
+ state.setAngularDamping(0);
1046
+ state.setLinearDamping(0);
1047
+
1048
+
1049
+ solverBody.mOrientation = state.getOrientation();
1050
+ solverBody.mDeltaLinearVelocity = vmVector3(0.0f);
1051
+ solverBody.mDeltaAngularVelocity = vmVector3(0.0f);
1052
+ solverBody.friction = obj->getFriction();
1053
+ solverBody.restitution = obj->getRestitution();
1054
+
1055
+ state.resetSleepCount();
1056
+
1057
+ //if(state.getMotionMask()&PFX_MOTION_MASK_DYNAMIC) {
1058
+ if (rb && (rb->getInvMass()>0.f))
1059
+ {
1060
+ state.setAngularVelocity(vmVector3(rb->getAngularVelocity().getX(),rb->getAngularVelocity().getY(),rb->getAngularVelocity().getZ()));
1061
+ state.setLinearVelocity(vmVector3(rb->getLinearVelocity().getX(),rb->getLinearVelocity().getY(),rb->getLinearVelocity().getZ()));
1062
+
1063
+ state.setMotionType(PfxMotionTypeActive);
1064
+ vmMatrix3 ori(solverBody.mOrientation);
1065
+ vmMatrix3 localInvInertia = vmMatrix3::identity();
1066
+ localInvInertia.setCol(0,vmVector3(rb->getInvInertiaDiagLocal().getX(),0,0));
1067
+ localInvInertia.setCol(1,vmVector3(0, rb->getInvInertiaDiagLocal().getY(),0));
1068
+ localInvInertia.setCol(2,vmVector3(0,0, rb->getInvInertiaDiagLocal().getZ()));
1069
+
1070
+ solverBody.mMassInv = rb->getInvMass();
1071
+ solverBody.mInertiaInv = ori * localInvInertia * transpose(ori);
1072
+ } else
1073
+ {
1074
+ state.setAngularVelocity(vmVector3(0));
1075
+ state.setLinearVelocity(vmVector3(0));
1076
+
1077
+ state.setMotionType(PfxMotionTypeFixed);
1078
+ m_memoryCache->m_mysolverbodies[i].mMassInv = 0.f;
1079
+ m_memoryCache->m_mysolverbodies[i].mInertiaInv = vmMatrix3(0.0f);
1080
+ }
1081
+
1082
+ }
1083
+ }
1084
+
1085
+
1086
+
1087
+ int totalPoints = 0;
1088
+ #ifndef USE_C_ARRAYS
1089
+ m_memoryCache->m_mypairs.resize(numManifolds);
1090
+ m_memoryCache->m_jointPairs.resize(numConstraints);
1091
+ #endif//USE_C_ARRAYS
1092
+
1093
+ int actualNumManifolds= 0;
1094
+ {
1095
+ BT_PROFILE("convert manifolds");
1096
+ for (int i1=0;i1<numManifolds;i1++)
1097
+ {
1098
+ if (manifoldPtr[i1]->getNumContacts()>0)
1099
+ {
1100
+ btPersistentManifold* m = manifoldPtr[i1];
1101
+ btCollisionObject* obA = (btCollisionObject*)m->getBody0();
1102
+ btCollisionObject* obB = (btCollisionObject*)m->getBody1();
1103
+ bool obAisActive = !obA->isStaticOrKinematicObject() && obA->isActive();
1104
+ bool obBisActive = !obB->isStaticOrKinematicObject() && obB->isActive();
1105
+
1106
+ if (!obAisActive && !obBisActive)
1107
+ continue;
1108
+
1109
+
1110
+ //int contactId = i1;//actualNumManifolds;
1111
+
1112
+ PfxBroadphasePair& pair = m_memoryCache->m_mypairs[actualNumManifolds];
1113
+ //init those
1114
+ float compFric = obA->getFriction()*obB->getFriction();//@todo
1115
+ int idA = obA->getCompanionId();
1116
+ int idB = obB->getCompanionId();
1117
+
1118
+ m->m_companionIdA = idA;
1119
+ m->m_companionIdB = idB;
1120
+
1121
+
1122
+ // if ((mysolverbodies[idA].mMassInv!=0)&&(mysolverbodies[idB].mMassInv!=0))
1123
+ // continue;
1124
+ int numPosPoints=0;
1125
+ for (int p=0;p<m->getNumContacts();p++)
1126
+ {
1127
+ //btManifoldPoint& pt = m->getContactPoint(p);
1128
+ //float dist = pt.getDistance();
1129
+ //if (dist<0.001)
1130
+ numPosPoints++;
1131
+ }
1132
+
1133
+
1134
+ numPosPoints = numPosPoints;
1135
+ totalPoints+=numPosPoints;
1136
+ pfxSetRigidBodyIdA(pair,idA);
1137
+ pfxSetRigidBodyIdB(pair,idB);
1138
+ pfxSetMotionMaskA(pair,m_memoryCache->m_mystates[idA].getMotionMask());
1139
+ pfxSetMotionMaskB(pair,m_memoryCache->m_mystates[idB].getMotionMask());
1140
+ pfxSetActive(pair,numPosPoints>0);
1141
+
1142
+ pfxSetBroadphaseFlag(pair,0);
1143
+ int contactId = m-offsetContactManifolds;
1144
+ //likely the contact pool is not contiguous, make sure to allocate large enough contact pool
1145
+ btAssert(contactId>=0);
1146
+ btAssert(contactId<dispatcher->getInternalManifoldPool()->getMaxCount());
1147
+
1148
+ pfxSetContactId(pair,contactId);
1149
+ pfxSetNumConstraints(pair,numPosPoints);//manifoldPtr[i]->getNumContacts());
1150
+ actualNumManifolds++;
1151
+ }
1152
+
1153
+ }
1154
+ }
1155
+
1156
+ PfxConstraintPair* jointPairs=0;
1157
+ jointPairs = numConstraints? &m_memoryCache->m_jointPairs[0]:0;
1158
+ int actualNumJoints=0;
1159
+
1160
+
1161
+ btSolverConstraint* offsetSolverConstraints = 0;
1162
+
1163
+ //if (1)
1164
+ {
1165
+
1166
+ {
1167
+ BT_PROFILE("convert constraints");
1168
+
1169
+ int totalNumRows = 0;
1170
+ int i;
1171
+
1172
+ m_tmpConstraintSizesPool.resize(numConstraints);
1173
+ //calculate the total number of contraint rows
1174
+ for (i=0;i<numConstraints;i++)
1175
+ {
1176
+ btTypedConstraint::btConstraintInfo1& info1 = m_tmpConstraintSizesPool[i];
1177
+ constraints[i]->getInfo1(&info1);
1178
+ totalNumRows += info1.m_numConstraintRows;
1179
+ }
1180
+ m_tmpSolverNonContactConstraintPool.resize(totalNumRows);
1181
+ offsetSolverConstraints =totalNumRows? &m_tmpSolverNonContactConstraintPool[0]:0;
1182
+
1183
+
1184
+ ///setup the btSolverConstraints
1185
+ int currentRow = 0;
1186
+
1187
+ for (i=0;i<numConstraints;i++)
1188
+ {
1189
+ const btTypedConstraint::btConstraintInfo1& info1 = m_tmpConstraintSizesPool[i];
1190
+
1191
+ if (info1.m_numConstraintRows)
1192
+ {
1193
+ btAssert(currentRow<totalNumRows);
1194
+ btTypedConstraint* constraint = constraints[i];
1195
+ btSolverConstraint* currentConstraintRow = &m_tmpSolverNonContactConstraintPool[currentRow];
1196
+
1197
+ btRigidBody& rbA = constraint->getRigidBodyA();
1198
+ btRigidBody& rbB = constraint->getRigidBodyB();
1199
+
1200
+
1201
+ int j;
1202
+ for ( j=0;j<info1.m_numConstraintRows;j++)
1203
+ {
1204
+ memset(&currentConstraintRow[j],0,sizeof(btSolverConstraint));
1205
+ currentConstraintRow[j].m_lowerLimit = -FLT_MAX;
1206
+ currentConstraintRow[j].m_upperLimit = FLT_MAX;
1207
+ currentConstraintRow[j].m_appliedImpulse = 0.f;
1208
+ currentConstraintRow[j].m_appliedPushImpulse = 0.f;
1209
+ currentConstraintRow[j].m_solverBodyA = &rbA;
1210
+ currentConstraintRow[j].m_solverBodyB = &rbB;
1211
+ }
1212
+
1213
+ rbA.internalGetDeltaLinearVelocity().setValue(0.f,0.f,0.f);
1214
+ rbA.internalGetDeltaAngularVelocity().setValue(0.f,0.f,0.f);
1215
+ rbB.internalGetDeltaLinearVelocity().setValue(0.f,0.f,0.f);
1216
+ rbB.internalGetDeltaAngularVelocity().setValue(0.f,0.f,0.f);
1217
+
1218
+
1219
+
1220
+ btTypedConstraint::btConstraintInfo2 info2;
1221
+ info2.fps = 1.f/infoGlobal.m_timeStep;
1222
+ info2.erp = infoGlobal.m_erp;
1223
+ info2.m_J1linearAxis = currentConstraintRow->m_contactNormal;
1224
+ info2.m_J1angularAxis = currentConstraintRow->m_relpos1CrossNormal;
1225
+ info2.m_J2linearAxis = 0;
1226
+ info2.m_J2angularAxis = currentConstraintRow->m_relpos2CrossNormal;
1227
+ info2.rowskip = sizeof(btSolverConstraint)/sizeof(btScalar);//check this
1228
+ ///the size of btSolverConstraint needs be a multiple of btScalar
1229
+ btAssert(info2.rowskip*sizeof(btScalar)== sizeof(btSolverConstraint));
1230
+ info2.m_constraintError = &currentConstraintRow->m_rhs;
1231
+ currentConstraintRow->m_cfm = infoGlobal.m_globalCfm;
1232
+ info2.cfm = &currentConstraintRow->m_cfm;
1233
+ info2.m_lowerLimit = &currentConstraintRow->m_lowerLimit;
1234
+ info2.m_upperLimit = &currentConstraintRow->m_upperLimit;
1235
+ info2.m_numIterations = infoGlobal.m_numIterations;
1236
+ constraints[i]->getInfo2(&info2);
1237
+
1238
+
1239
+ int idA = constraint->getRigidBodyA().getCompanionId();
1240
+ int idB = constraint->getRigidBodyB().getCompanionId();
1241
+
1242
+
1243
+ ///finalize the constraint setup
1244
+ for ( j=0;j<info1.m_numConstraintRows;j++)
1245
+ {
1246
+ btSolverConstraint& solverConstraint = currentConstraintRow[j];
1247
+ solverConstraint.m_originalContactPoint = constraint;
1248
+
1249
+ solverConstraint.m_companionIdA = idA;
1250
+ solverConstraint.m_companionIdB = idB;
1251
+
1252
+ {
1253
+ const btVector3& ftorqueAxis1 = solverConstraint.m_relpos1CrossNormal;
1254
+ solverConstraint.m_angularComponentA = constraint->getRigidBodyA().getInvInertiaTensorWorld()*ftorqueAxis1*constraint->getRigidBodyA().getAngularFactor();
1255
+ }
1256
+ {
1257
+ const btVector3& ftorqueAxis2 = solverConstraint.m_relpos2CrossNormal;
1258
+ solverConstraint.m_angularComponentB = constraint->getRigidBodyB().getInvInertiaTensorWorld()*ftorqueAxis2*constraint->getRigidBodyB().getAngularFactor();
1259
+ }
1260
+
1261
+ {
1262
+ btVector3 iMJlA = solverConstraint.m_contactNormal*rbA.getInvMass();
1263
+ btVector3 iMJaA = rbA.getInvInertiaTensorWorld()*solverConstraint.m_relpos1CrossNormal;
1264
+ btVector3 iMJlB = solverConstraint.m_contactNormal*rbB.getInvMass();//sign of normal?
1265
+ btVector3 iMJaB = rbB.getInvInertiaTensorWorld()*solverConstraint.m_relpos2CrossNormal;
1266
+
1267
+ btScalar sum = iMJlA.dot(solverConstraint.m_contactNormal);
1268
+ sum += iMJaA.dot(solverConstraint.m_relpos1CrossNormal);
1269
+ sum += iMJlB.dot(solverConstraint.m_contactNormal);
1270
+ sum += iMJaB.dot(solverConstraint.m_relpos2CrossNormal);
1271
+
1272
+ solverConstraint.m_jacDiagABInv = btScalar(1.)/sum;
1273
+ }
1274
+
1275
+
1276
+ ///fix rhs
1277
+ ///todo: add force/torque accelerators
1278
+ {
1279
+ btScalar rel_vel;
1280
+ btScalar vel1Dotn = solverConstraint.m_contactNormal.dot(rbA.getLinearVelocity()) + solverConstraint.m_relpos1CrossNormal.dot(rbA.getAngularVelocity());
1281
+ btScalar vel2Dotn = -solverConstraint.m_contactNormal.dot(rbB.getLinearVelocity()) + solverConstraint.m_relpos2CrossNormal.dot(rbB.getAngularVelocity());
1282
+
1283
+ rel_vel = vel1Dotn+vel2Dotn;
1284
+
1285
+ btScalar restitution = 0.f;
1286
+ btScalar positionalError = solverConstraint.m_rhs;//already filled in by getConstraintInfo2
1287
+ btScalar velocityError = restitution - rel_vel;// * damping;
1288
+ btScalar penetrationImpulse = positionalError*solverConstraint.m_jacDiagABInv;
1289
+ btScalar velocityImpulse = velocityError *solverConstraint.m_jacDiagABInv;
1290
+ solverConstraint.m_rhs = penetrationImpulse+velocityImpulse;
1291
+ solverConstraint.m_appliedImpulse = 0.f;
1292
+
1293
+ }
1294
+ }
1295
+
1296
+ PfxConstraintPair& pair = jointPairs[actualNumJoints];
1297
+
1298
+ int numConstraintRows= info1.m_numConstraintRows;
1299
+ pfxSetNumConstraints(pair,numConstraintRows);
1300
+
1301
+
1302
+
1303
+ pfxSetRigidBodyIdA(pair,idA);
1304
+ pfxSetRigidBodyIdB(pair,idB);
1305
+ //is this needed?
1306
+ if (idA>=0)
1307
+ pfxSetMotionMaskA(pair,m_memoryCache->m_mystates[idA].getMotionMask());
1308
+ if (idB>=0)
1309
+ pfxSetMotionMaskB(pair,m_memoryCache->m_mystates[idB].getMotionMask());
1310
+
1311
+ pfxSetActive(pair,true);
1312
+ int id = currentConstraintRow-offsetSolverConstraints;
1313
+ pfxSetContactId(pair,id);
1314
+ actualNumJoints++;
1315
+
1316
+
1317
+ }
1318
+ currentRow+=m_tmpConstraintSizesPool[i].m_numConstraintRows;
1319
+ }
1320
+ }
1321
+ }
1322
+
1323
+
1324
+
1325
+ float separateBias=0.1;//info.m_erp;//or m_erp2?
1326
+ float timeStep=infoGlobal.m_timeStep;
1327
+ int iteration=infoGlobal.m_numIterations;
1328
+
1329
+ //create a pair for each constraints, copy over info etc
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+ {
1336
+ BT_PROFILE("compute num contacts");
1337
+ int totalContacts =0;
1338
+
1339
+ for (int i=0;i<actualNumManifolds;i++)
1340
+ {
1341
+ PfxConstraintPair* pair = &m_memoryCache->m_mypairs[i];
1342
+ totalContacts += pfxGetNumConstraints(*pair);
1343
+ }
1344
+ //printf("numManifolds = %d\n",numManifolds);
1345
+ //printf("totalContacts=%d\n",totalContacts);
1346
+ }
1347
+
1348
+
1349
+
1350
+ // printf("actualNumManifolds=%d\n",actualNumManifolds);
1351
+ {
1352
+ BT_PROFILE("BPE_customConstraintSolverSequentialNew");
1353
+ if (numRigidBodies>0 && (actualNumManifolds+actualNumJoints)>0)
1354
+ {
1355
+ // PFX_PRINTF("num points = %d\n",totalPoints);
1356
+ // PFX_PRINTF("num points PFX = %d\n",total);
1357
+
1358
+
1359
+
1360
+ BPE_customConstraintSolverSequentialNew(
1361
+ actualNumManifolds,
1362
+ &m_memoryCache->m_mypairs[0],
1363
+ offsetContactManifolds,
1364
+ &m_memoryCache->m_mystates[0],numRigidBodies,
1365
+ &m_memoryCache->m_mysolverbodies[0],
1366
+ jointPairs,actualNumJoints,
1367
+ offsetSolverConstraints,
1368
+ separateBias,timeStep,iteration,
1369
+ m_solverThreadSupport,m_criticalSection,m_solverIO,m_barrier);
1370
+ }
1371
+ }
1372
+
1373
+ //copy results back to bodies
1374
+ {
1375
+ BT_PROFILE("copy back");
1376
+ for (int i=0;i<numRigidBodies;i++)
1377
+ {
1378
+ btCollisionObject* obj = bodies1[i];
1379
+ btRigidBody* rb = btRigidBody::upcast(obj);
1380
+ TrbState& state = m_memoryCache->m_mystates[i];
1381
+ if (rb && (rb->getInvMass()>0.f))
1382
+ {
1383
+ rb->setLinearVelocity(btVector3(state.getLinearVelocity().getX(),state.getLinearVelocity().getY(),state.getLinearVelocity().getZ()));
1384
+ rb->setAngularVelocity(btVector3(state.getAngularVelocity().getX(),state.getAngularVelocity().getY(),state.getAngularVelocity().getZ()));
1385
+ }
1386
+ }
1387
+ }
1388
+
1389
+
1390
+ return 0.f;
1391
+ }