ruby-bullet 0.1.0-x86-linux → 0.1.1-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (284) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3 -0
  3. data/Rakefile +14 -2
  4. data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionWorld.i +2 -2
  5. data/bindings/bullet/interface/bullet_wrap.cpp +17548 -6035
  6. data/bindings/bullet/interface/bullet_wrap.h +7 -7
  7. data/bindings/bullet/interface/bullet_wrap.o +0 -0
  8. data/lib/bullet.so +0 -0
  9. data/lib/ruby-bullet/version.rb +1 -1
  10. data/ruby-bullet.gemspec +0 -3
  11. metadata +169 -444
  12. data/deps/include/bullet/Bullet-C-Api.h +0 -176
  13. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.h +0 -1051
  14. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h +0 -82
  15. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h +0 -270
  16. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h +0 -80
  17. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvt.h +0 -1257
  18. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h +0 -146
  19. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h +0 -110
  20. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h +0 -151
  21. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h +0 -469
  22. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h +0 -40
  23. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h +0 -579
  24. data/deps/include/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h +0 -171
  25. data/deps/include/bullet/BulletCollision/CollisionDispatch/SphereTriangleDetector.h +0 -51
  26. data/deps/include/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h +0 -36
  27. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h +0 -66
  28. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h +0 -66
  29. data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxDetector.h +0 -44
  30. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionConfiguration.h +0 -48
  31. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h +0 -45
  32. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h +0 -172
  33. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h +0 -524
  34. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h +0 -509
  35. data/deps/include/bullet/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h +0 -86
  36. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h +0 -95
  37. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h +0 -116
  38. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h +0 -109
  39. data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h +0 -84
  40. data/deps/include/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h +0 -137
  41. data/deps/include/bullet/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h +0 -54
  42. data/deps/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h +0 -175
  43. data/deps/include/bullet/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h +0 -46
  44. data/deps/include/bullet/BulletCollision/CollisionDispatch/btManifoldResult.h +0 -128
  45. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSimulationIslandManager.h +0 -81
  46. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h +0 -75
  47. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h +0 -66
  48. data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h +0 -69
  49. data/deps/include/bullet/BulletCollision/CollisionDispatch/btUnionFind.h +0 -129
  50. data/deps/include/bullet/BulletCollision/CollisionShapes/btBox2dShape.h +0 -369
  51. data/deps/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h +0 -312
  52. data/deps/include/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h +0 -139
  53. data/deps/include/bullet/BulletCollision/CollisionShapes/btCapsuleShape.h +0 -173
  54. data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionMargin.h +0 -27
  55. data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionShape.h +0 -150
  56. data/deps/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h +0 -212
  57. data/deps/include/bullet/BulletCollision/CollisionShapes/btConcaveShape.h +0 -60
  58. data/deps/include/bullet/BulletCollision/CollisionShapes/btConeShape.h +0 -103
  59. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvex2dShape.h +0 -80
  60. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexHullShape.h +0 -122
  61. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h +0 -224
  62. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.h +0 -105
  63. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.h +0 -62
  64. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexShape.h +0 -84
  65. data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h +0 -75
  66. data/deps/include/bullet/BulletCollision/CollisionShapes/btCylinderShape.h +0 -200
  67. data/deps/include/bullet/BulletCollision/CollisionShapes/btEmptyShape.h +0 -70
  68. data/deps/include/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h +0 -161
  69. data/deps/include/bullet/BulletCollision/CollisionShapes/btMaterial.h +0 -35
  70. data/deps/include/bullet/BulletCollision/CollisionShapes/btMinkowskiSumShape.h +0 -60
  71. data/deps/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h +0 -99
  72. data/deps/include/bullet/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h +0 -120
  73. data/deps/include/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.h +0 -65
  74. data/deps/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h +0 -112
  75. data/deps/include/bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h +0 -93
  76. data/deps/include/bullet/BulletCollision/CollisionShapes/btShapeHull.h +0 -59
  77. data/deps/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h +0 -73
  78. data/deps/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h +0 -103
  79. data/deps/include/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.h +0 -162
  80. data/deps/include/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.h +0 -74
  81. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleBuffer.h +0 -69
  82. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleCallback.h +0 -42
  83. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h +0 -133
  84. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h +0 -84
  85. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleInfoMap.h +0 -241
  86. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMesh.h +0 -69
  87. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h +0 -89
  88. data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleShape.h +0 -182
  89. data/deps/include/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.h +0 -87
  90. data/deps/include/bullet/BulletCollision/Gimpact/btBoxCollision.h +0 -647
  91. data/deps/include/bullet/BulletCollision/Gimpact/btClipPolygon.h +0 -182
  92. data/deps/include/bullet/BulletCollision/Gimpact/btContactProcessing.h +0 -145
  93. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactBvh.h +0 -396
  94. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h +0 -306
  95. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactMassUtil.h +0 -60
  96. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.h +0 -372
  97. data/deps/include/bullet/BulletCollision/Gimpact/btGImpactShape.h +0 -1171
  98. data/deps/include/bullet/BulletCollision/Gimpact/btGenericPoolAllocator.h +0 -163
  99. data/deps/include/bullet/BulletCollision/Gimpact/btGeometryOperations.h +0 -212
  100. data/deps/include/bullet/BulletCollision/Gimpact/btQuantization.h +0 -88
  101. data/deps/include/bullet/BulletCollision/Gimpact/btTriangleShapeEx.h +0 -180
  102. data/deps/include/bullet/BulletCollision/Gimpact/gim_array.h +0 -326
  103. data/deps/include/bullet/BulletCollision/Gimpact/gim_basic_geometry_operations.h +0 -543
  104. data/deps/include/bullet/BulletCollision/Gimpact/gim_bitset.h +0 -123
  105. data/deps/include/bullet/BulletCollision/Gimpact/gim_box_collision.h +0 -590
  106. data/deps/include/bullet/BulletCollision/Gimpact/gim_box_set.h +0 -674
  107. data/deps/include/bullet/BulletCollision/Gimpact/gim_clip_polygon.h +0 -210
  108. data/deps/include/bullet/BulletCollision/Gimpact/gim_contact.h +0 -164
  109. data/deps/include/bullet/BulletCollision/Gimpact/gim_geom_types.h +0 -97
  110. data/deps/include/bullet/BulletCollision/Gimpact/gim_geometry.h +0 -42
  111. data/deps/include/bullet/BulletCollision/Gimpact/gim_hash_table.h +0 -902
  112. data/deps/include/bullet/BulletCollision/Gimpact/gim_linear_math.h +0 -1573
  113. data/deps/include/bullet/BulletCollision/Gimpact/gim_math.h +0 -157
  114. data/deps/include/bullet/BulletCollision/Gimpact/gim_memory.h +0 -190
  115. data/deps/include/bullet/BulletCollision/Gimpact/gim_radixsort.h +0 -406
  116. data/deps/include/bullet/BulletCollision/Gimpact/gim_tri_collision.h +0 -379
  117. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h +0 -59
  118. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h +0 -73
  119. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h +0 -42
  120. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h +0 -91
  121. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h +0 -50
  122. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h +0 -75
  123. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h +0 -43
  124. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h +0 -103
  125. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h +0 -158
  126. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h +0 -40
  127. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h +0 -228
  128. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPointCollector.h +0 -64
  129. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h +0 -46
  130. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h +0 -72
  131. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h +0 -63
  132. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h +0 -50
  133. data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h +0 -179
  134. data/deps/include/bullet/BulletCollision/btBulletCollisionCommon.h +0 -69
  135. data/deps/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h +0 -46
  136. data/deps/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h +0 -163
  137. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h +0 -346
  138. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h +0 -52
  139. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.h +0 -71
  140. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h +0 -87
  141. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h +0 -614
  142. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h +0 -99
  143. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.h +0 -58
  144. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.h +0 -381
  145. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btJacobianEntry.h +0 -156
  146. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h +0 -161
  147. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h +0 -130
  148. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.h +0 -333
  149. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h +0 -107
  150. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h +0 -191
  151. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h +0 -98
  152. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h +0 -452
  153. data/deps/include/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.h +0 -62
  154. data/deps/include/bullet/BulletDynamics/Dynamics/btActionInterface.h +0 -46
  155. data/deps/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h +0 -203
  156. data/deps/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h +0 -151
  157. data/deps/include/bullet/BulletDynamics/Dynamics/btRigidBody.h +0 -691
  158. data/deps/include/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h +0 -89
  159. data/deps/include/bullet/BulletDynamics/Vehicle/btRaycastVehicle.h +0 -236
  160. data/deps/include/bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h +0 -35
  161. data/deps/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h +0 -119
  162. data/deps/include/bullet/BulletDynamics/btBulletDynamicsCommon.h +0 -48
  163. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverBuffer_DX11.h +0 -323
  164. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11.h +0 -103
  165. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11SIMDAware.h +0 -173
  166. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverTriangleData_DX11.h +0 -96
  167. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexBuffer_DX11.h +0 -107
  168. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexData_DX11.h +0 -63
  169. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11.h +0 -691
  170. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11SIMDAware.h +0 -81
  171. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverBuffer_OpenCL.h +0 -209
  172. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCL.h +0 -99
  173. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCLSIMDAware.h +0 -169
  174. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverOutputCLtoGL.h +0 -62
  175. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverTriangleData_OpenCL.h +0 -84
  176. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexBuffer_OpenGL.h +0 -166
  177. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexData_OpenCL.h +0 -52
  178. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCL.h +0 -527
  179. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCLSIMDAware.h +0 -81
  180. data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/Shared/btSoftBodySolverData.h +0 -748
  181. data/deps/include/bullet/BulletMultiThreaded/HeapManager.h +0 -117
  182. data/deps/include/bullet/BulletMultiThreaded/PlatformDefinitions.h +0 -99
  183. data/deps/include/bullet/BulletMultiThreaded/PosixThreadSupport.h +0 -142
  184. data/deps/include/bullet/BulletMultiThreaded/PpuAddressSpace.h +0 -37
  185. data/deps/include/bullet/BulletMultiThreaded/SequentialThreadSupport.h +0 -96
  186. data/deps/include/bullet/BulletMultiThreaded/SpuCollisionObjectWrapper.h +0 -40
  187. data/deps/include/bullet/BulletMultiThreaded/SpuCollisionTaskProcess.h +0 -163
  188. data/deps/include/bullet/BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h +0 -120
  189. data/deps/include/bullet/BulletMultiThreaded/SpuDoubleBuffer.h +0 -126
  190. data/deps/include/bullet/BulletMultiThreaded/SpuFakeDma.h +0 -135
  191. data/deps/include/bullet/BulletMultiThreaded/SpuGatheringCollisionDispatcher.h +0 -72
  192. data/deps/include/bullet/BulletMultiThreaded/SpuLibspe2Support.h +0 -180
  193. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h +0 -167
  194. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h +0 -128
  195. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h +0 -106
  196. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h +0 -51
  197. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h +0 -140
  198. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h +0 -19
  199. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h +0 -48
  200. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h +0 -70
  201. data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h +0 -65
  202. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h +0 -54
  203. data/deps/include/bullet/BulletMultiThreaded/SpuSampleTaskProcess.h +0 -153
  204. data/deps/include/bullet/BulletMultiThreaded/SpuSync.h +0 -149
  205. data/deps/include/bullet/BulletMultiThreaded/TrbDynBody.h +0 -79
  206. data/deps/include/bullet/BulletMultiThreaded/TrbStateVec.h +0 -339
  207. data/deps/include/bullet/BulletMultiThreaded/Win32ThreadSupport.h +0 -138
  208. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphase.h +0 -138
  209. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedCode.h +0 -430
  210. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedDefs.h +0 -61
  211. data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedTypes.h +0 -67
  212. data/deps/include/bullet/BulletMultiThreaded/btGpuDefines.h +0 -211
  213. data/deps/include/bullet/BulletMultiThreaded/btGpuUtilsSharedCode.h +0 -55
  214. data/deps/include/bullet/BulletMultiThreaded/btGpuUtilsSharedDefs.h +0 -52
  215. data/deps/include/bullet/BulletMultiThreaded/btParallelConstraintSolver.h +0 -285
  216. data/deps/include/bullet/BulletMultiThreaded/btThreadSupportInterface.h +0 -85
  217. data/deps/include/bullet/BulletMultiThreaded/vectormath2bullet.h +0 -73
  218. data/deps/include/bullet/BulletSoftBody/btDefaultSoftBodySolver.h +0 -63
  219. data/deps/include/bullet/BulletSoftBody/btSoftBody.h +0 -987
  220. data/deps/include/bullet/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h +0 -153
  221. data/deps/include/bullet/BulletSoftBody/btSoftBodyData.h +0 -217
  222. data/deps/include/bullet/BulletSoftBody/btSoftBodyHelpers.h +0 -143
  223. data/deps/include/bullet/BulletSoftBody/btSoftBodyInternals.h +0 -930
  224. data/deps/include/bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h +0 -48
  225. data/deps/include/bullet/BulletSoftBody/btSoftBodySolverVertexBuffer.h +0 -165
  226. data/deps/include/bullet/BulletSoftBody/btSoftBodySolvers.h +0 -154
  227. data/deps/include/bullet/BulletSoftBody/btSoftRigidCollisionAlgorithm.h +0 -75
  228. data/deps/include/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.h +0 -107
  229. data/deps/include/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.h +0 -69
  230. data/deps/include/bullet/BulletSoftBody/btSparseSDF.h +0 -306
  231. data/deps/include/bullet/LinearMath/btAabbUtil2.h +0 -236
  232. data/deps/include/bullet/LinearMath/btAlignedAllocator.h +0 -107
  233. data/deps/include/bullet/LinearMath/btAlignedObjectArray.h +0 -494
  234. data/deps/include/bullet/LinearMath/btConvexHull.h +0 -241
  235. data/deps/include/bullet/LinearMath/btConvexHullComputer.h +0 -103
  236. data/deps/include/bullet/LinearMath/btDefaultMotionState.h +0 -40
  237. data/deps/include/bullet/LinearMath/btGeometryUtil.h +0 -42
  238. data/deps/include/bullet/LinearMath/btGrahamScan2dConvexHull.h +0 -110
  239. data/deps/include/bullet/LinearMath/btHashMap.h +0 -450
  240. data/deps/include/bullet/LinearMath/btIDebugDraw.h +0 -418
  241. data/deps/include/bullet/LinearMath/btList.h +0 -73
  242. data/deps/include/bullet/LinearMath/btMatrix3x3.h +0 -771
  243. data/deps/include/bullet/LinearMath/btMinMax.h +0 -71
  244. data/deps/include/bullet/LinearMath/btMotionState.h +0 -40
  245. data/deps/include/bullet/LinearMath/btPoolAllocator.h +0 -121
  246. data/deps/include/bullet/LinearMath/btQuadWord.h +0 -180
  247. data/deps/include/bullet/LinearMath/btQuaternion.h +0 -430
  248. data/deps/include/bullet/LinearMath/btQuickprof.h +0 -203
  249. data/deps/include/bullet/LinearMath/btRandom.h +0 -42
  250. data/deps/include/bullet/LinearMath/btScalar.h +0 -539
  251. data/deps/include/bullet/LinearMath/btSerializer.h +0 -639
  252. data/deps/include/bullet/LinearMath/btStackAlloc.h +0 -116
  253. data/deps/include/bullet/LinearMath/btTransform.h +0 -307
  254. data/deps/include/bullet/LinearMath/btTransformUtil.h +0 -228
  255. data/deps/include/bullet/LinearMath/btVector3.h +0 -766
  256. data/deps/include/bullet/MiniCL/MiniCLTask/MiniCLTask.h +0 -62
  257. data/deps/include/bullet/MiniCL/MiniCLTaskScheduler.h +0 -194
  258. data/deps/include/bullet/MiniCL/cl.h +0 -867
  259. data/deps/include/bullet/MiniCL/cl_MiniCL_Defs.h +0 -439
  260. data/deps/include/bullet/MiniCL/cl_gl.h +0 -113
  261. data/deps/include/bullet/MiniCL/cl_platform.h +0 -254
  262. data/deps/include/bullet/btBulletCollisionCommon.h +0 -69
  263. data/deps/include/bullet/btBulletDynamicsCommon.h +0 -48
  264. data/deps/include/bullet/vectormath/scalar/boolInVec.h +0 -225
  265. data/deps/include/bullet/vectormath/scalar/floatInVec.h +0 -343
  266. data/deps/include/bullet/vectormath/scalar/mat_aos.h +0 -1630
  267. data/deps/include/bullet/vectormath/scalar/quat_aos.h +0 -433
  268. data/deps/include/bullet/vectormath/scalar/vec_aos.h +0 -1426
  269. data/deps/include/bullet/vectormath/scalar/vectormath_aos.h +0 -1872
  270. data/deps/include/bullet/vectormath/sse/boolInVec.h +0 -247
  271. data/deps/include/bullet/vectormath/sse/floatInVec.h +0 -340
  272. data/deps/include/bullet/vectormath/sse/mat_aos.h +0 -2190
  273. data/deps/include/bullet/vectormath/sse/quat_aos.h +0 -579
  274. data/deps/include/bullet/vectormath/sse/vec_aos.h +0 -1455
  275. data/deps/include/bullet/vectormath/sse/vecidx_aos.h +0 -80
  276. data/deps/include/bullet/vectormath/sse/vectormath_aos.h +0 -2547
  277. data/deps/include/bullet/vectormath/vmInclude.h +0 -27
  278. data/deps/lib/libBulletCollision.a +0 -0
  279. data/deps/lib/libBulletDynamics.a +0 -0
  280. data/deps/lib/libBulletMultiThreaded.a +0 -0
  281. data/deps/lib/libBulletSoftBody.a +0 -0
  282. data/deps/lib/libBulletSoftBodySolvers_OpenCL_Mini.a +0 -0
  283. data/deps/lib/libLinearMath.a +0 -0
  284. data/deps/lib/libMiniCL.a +0 -0
@@ -1,590 +0,0 @@
1
- #ifndef GIM_BOX_COLLISION_H_INCLUDED
2
- #define GIM_BOX_COLLISION_H_INCLUDED
3
-
4
- /*! \file gim_box_collision.h
5
- \author Francisco Leon Najera
6
- */
7
- /*
8
- -----------------------------------------------------------------------------
9
- This source file is part of GIMPACT Library.
10
-
11
- For the latest info, see http://gimpact.sourceforge.net/
12
-
13
- Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371.
14
- email: projectileman@yahoo.com
15
-
16
- This library is free software; you can redistribute it and/or
17
- modify it under the terms of EITHER:
18
- (1) The GNU Lesser General Public License as published by the Free
19
- Software Foundation; either version 2.1 of the License, or (at
20
- your option) any later version. The text of the GNU Lesser
21
- General Public License is included with this library in the
22
- file GIMPACT-LICENSE-LGPL.TXT.
23
- (2) The BSD-style license that is included with this library in
24
- the file GIMPACT-LICENSE-BSD.TXT.
25
- (3) The zlib/libpng license that is included with this library in
26
- the file GIMPACT-LICENSE-ZLIB.TXT.
27
-
28
- This library is distributed in the hope that it will be useful,
29
- but WITHOUT ANY WARRANTY; without even the implied warranty of
30
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files
31
- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.
32
-
33
- -----------------------------------------------------------------------------
34
- */
35
- #include "gim_basic_geometry_operations.h"
36
- #include "LinearMath/btTransform.h"
37
-
38
-
39
-
40
- //SIMD_FORCE_INLINE bool test_cross_edge_box(
41
- // const btVector3 & edge,
42
- // const btVector3 & absolute_edge,
43
- // const btVector3 & pointa,
44
- // const btVector3 & pointb, const btVector3 & extend,
45
- // int dir_index0,
46
- // int dir_index1
47
- // int component_index0,
48
- // int component_index1)
49
- //{
50
- // // dir coords are -z and y
51
- //
52
- // const btScalar dir0 = -edge[dir_index0];
53
- // const btScalar dir1 = edge[dir_index1];
54
- // btScalar pmin = pointa[component_index0]*dir0 + pointa[component_index1]*dir1;
55
- // btScalar pmax = pointb[component_index0]*dir0 + pointb[component_index1]*dir1;
56
- // //find minmax
57
- // if(pmin>pmax)
58
- // {
59
- // GIM_SWAP_NUMBERS(pmin,pmax);
60
- // }
61
- // //find extends
62
- // const btScalar rad = extend[component_index0] * absolute_edge[dir_index0] +
63
- // extend[component_index1] * absolute_edge[dir_index1];
64
- //
65
- // if(pmin>rad || -rad>pmax) return false;
66
- // return true;
67
- //}
68
- //
69
- //SIMD_FORCE_INLINE bool test_cross_edge_box_X_axis(
70
- // const btVector3 & edge,
71
- // const btVector3 & absolute_edge,
72
- // const btVector3 & pointa,
73
- // const btVector3 & pointb, btVector3 & extend)
74
- //{
75
- //
76
- // return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,2,1,1,2);
77
- //}
78
- //
79
- //
80
- //SIMD_FORCE_INLINE bool test_cross_edge_box_Y_axis(
81
- // const btVector3 & edge,
82
- // const btVector3 & absolute_edge,
83
- // const btVector3 & pointa,
84
- // const btVector3 & pointb, btVector3 & extend)
85
- //{
86
- //
87
- // return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,0,2,2,0);
88
- //}
89
- //
90
- //SIMD_FORCE_INLINE bool test_cross_edge_box_Z_axis(
91
- // const btVector3 & edge,
92
- // const btVector3 & absolute_edge,
93
- // const btVector3 & pointa,
94
- // const btVector3 & pointb, btVector3 & extend)
95
- //{
96
- //
97
- // return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,1,0,0,1);
98
- //}
99
-
100
- #define TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,i_dir_0,i_dir_1,i_comp_0,i_comp_1)\
101
- {\
102
- const btScalar dir0 = -edge[i_dir_0];\
103
- const btScalar dir1 = edge[i_dir_1];\
104
- btScalar pmin = pointa[i_comp_0]*dir0 + pointa[i_comp_1]*dir1;\
105
- btScalar pmax = pointb[i_comp_0]*dir0 + pointb[i_comp_1]*dir1;\
106
- if(pmin>pmax)\
107
- {\
108
- GIM_SWAP_NUMBERS(pmin,pmax); \
109
- }\
110
- const btScalar abs_dir0 = absolute_edge[i_dir_0];\
111
- const btScalar abs_dir1 = absolute_edge[i_dir_1];\
112
- const btScalar rad = _extend[i_comp_0] * abs_dir0 + _extend[i_comp_1] * abs_dir1;\
113
- if(pmin>rad || -rad>pmax) return false;\
114
- }\
115
-
116
-
117
- #define TEST_CROSS_EDGE_BOX_X_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\
118
- {\
119
- TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,2,1,1,2);\
120
- }\
121
-
122
- #define TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\
123
- {\
124
- TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,0,2,2,0);\
125
- }\
126
-
127
- #define TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\
128
- {\
129
- TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,1,0,0,1);\
130
- }\
131
-
132
-
133
-
134
- //! Class for transforming a model1 to the space of model0
135
- class GIM_BOX_BOX_TRANSFORM_CACHE
136
- {
137
- public:
138
- btVector3 m_T1to0;//!< Transforms translation of model1 to model 0
139
- btMatrix3x3 m_R1to0;//!< Transforms Rotation of model1 to model 0, equal to R0' * R1
140
- btMatrix3x3 m_AR;//!< Absolute value of m_R1to0
141
-
142
- SIMD_FORCE_INLINE void calc_absolute_matrix()
143
- {
144
- static const btVector3 vepsi(1e-6f,1e-6f,1e-6f);
145
- m_AR[0] = vepsi + m_R1to0[0].absolute();
146
- m_AR[1] = vepsi + m_R1to0[1].absolute();
147
- m_AR[2] = vepsi + m_R1to0[2].absolute();
148
- }
149
-
150
- GIM_BOX_BOX_TRANSFORM_CACHE()
151
- {
152
- }
153
-
154
-
155
- GIM_BOX_BOX_TRANSFORM_CACHE(mat4f trans1_to_0)
156
- {
157
- COPY_MATRIX_3X3(m_R1to0,trans1_to_0)
158
- MAT_GET_TRANSLATION(trans1_to_0,m_T1to0)
159
- calc_absolute_matrix();
160
- }
161
-
162
- //! Calc the transformation relative 1 to 0. Inverts matrics by transposing
163
- SIMD_FORCE_INLINE void calc_from_homogenic(const btTransform & trans0,const btTransform & trans1)
164
- {
165
-
166
- m_R1to0 = trans0.getBasis().transpose();
167
- m_T1to0 = m_R1to0 * (-trans0.getOrigin());
168
-
169
- m_T1to0 += m_R1to0*trans1.getOrigin();
170
- m_R1to0 *= trans1.getBasis();
171
-
172
- calc_absolute_matrix();
173
- }
174
-
175
- //! Calcs the full invertion of the matrices. Useful for scaling matrices
176
- SIMD_FORCE_INLINE void calc_from_full_invert(const btTransform & trans0,const btTransform & trans1)
177
- {
178
- m_R1to0 = trans0.getBasis().inverse();
179
- m_T1to0 = m_R1to0 * (-trans0.getOrigin());
180
-
181
- m_T1to0 += m_R1to0*trans1.getOrigin();
182
- m_R1to0 *= trans1.getBasis();
183
-
184
- calc_absolute_matrix();
185
- }
186
-
187
- SIMD_FORCE_INLINE btVector3 transform(const btVector3 & point)
188
- {
189
- return btVector3(m_R1to0[0].dot(point) + m_T1to0.x(),
190
- m_R1to0[1].dot(point) + m_T1to0.y(),
191
- m_R1to0[2].dot(point) + m_T1to0.z());
192
- }
193
- };
194
-
195
-
196
- #define BOX_PLANE_EPSILON 0.000001f
197
-
198
- //! Axis aligned box
199
- class GIM_AABB
200
- {
201
- public:
202
- btVector3 m_min;
203
- btVector3 m_max;
204
-
205
- GIM_AABB()
206
- {}
207
-
208
-
209
- GIM_AABB(const btVector3 & V1,
210
- const btVector3 & V2,
211
- const btVector3 & V3)
212
- {
213
- m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);
214
- m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);
215
- m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);
216
-
217
- m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);
218
- m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);
219
- m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);
220
- }
221
-
222
- GIM_AABB(const btVector3 & V1,
223
- const btVector3 & V2,
224
- const btVector3 & V3,
225
- GREAL margin)
226
- {
227
- m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);
228
- m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);
229
- m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);
230
-
231
- m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);
232
- m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);
233
- m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);
234
-
235
- m_min[0] -= margin;
236
- m_min[1] -= margin;
237
- m_min[2] -= margin;
238
- m_max[0] += margin;
239
- m_max[1] += margin;
240
- m_max[2] += margin;
241
- }
242
-
243
- GIM_AABB(const GIM_AABB &other):
244
- m_min(other.m_min),m_max(other.m_max)
245
- {
246
- }
247
-
248
- GIM_AABB(const GIM_AABB &other,btScalar margin ):
249
- m_min(other.m_min),m_max(other.m_max)
250
- {
251
- m_min[0] -= margin;
252
- m_min[1] -= margin;
253
- m_min[2] -= margin;
254
- m_max[0] += margin;
255
- m_max[1] += margin;
256
- m_max[2] += margin;
257
- }
258
-
259
- SIMD_FORCE_INLINE void invalidate()
260
- {
261
- m_min[0] = G_REAL_INFINITY;
262
- m_min[1] = G_REAL_INFINITY;
263
- m_min[2] = G_REAL_INFINITY;
264
- m_max[0] = -G_REAL_INFINITY;
265
- m_max[1] = -G_REAL_INFINITY;
266
- m_max[2] = -G_REAL_INFINITY;
267
- }
268
-
269
- SIMD_FORCE_INLINE void increment_margin(btScalar margin)
270
- {
271
- m_min[0] -= margin;
272
- m_min[1] -= margin;
273
- m_min[2] -= margin;
274
- m_max[0] += margin;
275
- m_max[1] += margin;
276
- m_max[2] += margin;
277
- }
278
-
279
- SIMD_FORCE_INLINE void copy_with_margin(const GIM_AABB &other, btScalar margin)
280
- {
281
- m_min[0] = other.m_min[0] - margin;
282
- m_min[1] = other.m_min[1] - margin;
283
- m_min[2] = other.m_min[2] - margin;
284
-
285
- m_max[0] = other.m_max[0] + margin;
286
- m_max[1] = other.m_max[1] + margin;
287
- m_max[2] = other.m_max[2] + margin;
288
- }
289
-
290
- template<typename CLASS_POINT>
291
- SIMD_FORCE_INLINE void calc_from_triangle(
292
- const CLASS_POINT & V1,
293
- const CLASS_POINT & V2,
294
- const CLASS_POINT & V3)
295
- {
296
- m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);
297
- m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);
298
- m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);
299
-
300
- m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);
301
- m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);
302
- m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);
303
- }
304
-
305
- template<typename CLASS_POINT>
306
- SIMD_FORCE_INLINE void calc_from_triangle_margin(
307
- const CLASS_POINT & V1,
308
- const CLASS_POINT & V2,
309
- const CLASS_POINT & V3, btScalar margin)
310
- {
311
- m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);
312
- m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);
313
- m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);
314
-
315
- m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);
316
- m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);
317
- m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);
318
-
319
- m_min[0] -= margin;
320
- m_min[1] -= margin;
321
- m_min[2] -= margin;
322
- m_max[0] += margin;
323
- m_max[1] += margin;
324
- m_max[2] += margin;
325
- }
326
-
327
- //! Apply a transform to an AABB
328
- SIMD_FORCE_INLINE void appy_transform(const btTransform & trans)
329
- {
330
- btVector3 center = (m_max+m_min)*0.5f;
331
- btVector3 extends = m_max - center;
332
- // Compute new center
333
- center = trans(center);
334
-
335
- btVector3 textends(extends.dot(trans.getBasis().getRow(0).absolute()),
336
- extends.dot(trans.getBasis().getRow(1).absolute()),
337
- extends.dot(trans.getBasis().getRow(2).absolute()));
338
-
339
- m_min = center - textends;
340
- m_max = center + textends;
341
- }
342
-
343
- //! Merges a Box
344
- SIMD_FORCE_INLINE void merge(const GIM_AABB & box)
345
- {
346
- m_min[0] = GIM_MIN(m_min[0],box.m_min[0]);
347
- m_min[1] = GIM_MIN(m_min[1],box.m_min[1]);
348
- m_min[2] = GIM_MIN(m_min[2],box.m_min[2]);
349
-
350
- m_max[0] = GIM_MAX(m_max[0],box.m_max[0]);
351
- m_max[1] = GIM_MAX(m_max[1],box.m_max[1]);
352
- m_max[2] = GIM_MAX(m_max[2],box.m_max[2]);
353
- }
354
-
355
- //! Merges a point
356
- template<typename CLASS_POINT>
357
- SIMD_FORCE_INLINE void merge_point(const CLASS_POINT & point)
358
- {
359
- m_min[0] = GIM_MIN(m_min[0],point[0]);
360
- m_min[1] = GIM_MIN(m_min[1],point[1]);
361
- m_min[2] = GIM_MIN(m_min[2],point[2]);
362
-
363
- m_max[0] = GIM_MAX(m_max[0],point[0]);
364
- m_max[1] = GIM_MAX(m_max[1],point[1]);
365
- m_max[2] = GIM_MAX(m_max[2],point[2]);
366
- }
367
-
368
- //! Gets the extend and center
369
- SIMD_FORCE_INLINE void get_center_extend(btVector3 & center,btVector3 & extend) const
370
- {
371
- center = (m_max+m_min)*0.5f;
372
- extend = m_max - center;
373
- }
374
-
375
- //! Finds the intersecting box between this box and the other.
376
- SIMD_FORCE_INLINE void find_intersection(const GIM_AABB & other, GIM_AABB & intersection) const
377
- {
378
- intersection.m_min[0] = GIM_MAX(other.m_min[0],m_min[0]);
379
- intersection.m_min[1] = GIM_MAX(other.m_min[1],m_min[1]);
380
- intersection.m_min[2] = GIM_MAX(other.m_min[2],m_min[2]);
381
-
382
- intersection.m_max[0] = GIM_MIN(other.m_max[0],m_max[0]);
383
- intersection.m_max[1] = GIM_MIN(other.m_max[1],m_max[1]);
384
- intersection.m_max[2] = GIM_MIN(other.m_max[2],m_max[2]);
385
- }
386
-
387
-
388
- SIMD_FORCE_INLINE bool has_collision(const GIM_AABB & other) const
389
- {
390
- if(m_min[0] > other.m_max[0] ||
391
- m_max[0] < other.m_min[0] ||
392
- m_min[1] > other.m_max[1] ||
393
- m_max[1] < other.m_min[1] ||
394
- m_min[2] > other.m_max[2] ||
395
- m_max[2] < other.m_min[2])
396
- {
397
- return false;
398
- }
399
- return true;
400
- }
401
-
402
- /*! \brief Finds the Ray intersection parameter.
403
- \param aabb Aligned box
404
- \param vorigin A vec3f with the origin of the ray
405
- \param vdir A vec3f with the direction of the ray
406
- */
407
- SIMD_FORCE_INLINE bool collide_ray(const btVector3 & vorigin,const btVector3 & vdir)
408
- {
409
- btVector3 extents,center;
410
- this->get_center_extend(center,extents);;
411
-
412
- btScalar Dx = vorigin[0] - center[0];
413
- if(GIM_GREATER(Dx, extents[0]) && Dx*vdir[0]>=0.0f) return false;
414
- btScalar Dy = vorigin[1] - center[1];
415
- if(GIM_GREATER(Dy, extents[1]) && Dy*vdir[1]>=0.0f) return false;
416
- btScalar Dz = vorigin[2] - center[2];
417
- if(GIM_GREATER(Dz, extents[2]) && Dz*vdir[2]>=0.0f) return false;
418
-
419
-
420
- btScalar f = vdir[1] * Dz - vdir[2] * Dy;
421
- if(btFabs(f) > extents[1]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[1])) return false;
422
- f = vdir[2] * Dx - vdir[0] * Dz;
423
- if(btFabs(f) > extents[0]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[0]))return false;
424
- f = vdir[0] * Dy - vdir[1] * Dx;
425
- if(btFabs(f) > extents[0]*btFabs(vdir[1]) + extents[1]*btFabs(vdir[0]))return false;
426
- return true;
427
- }
428
-
429
-
430
- SIMD_FORCE_INLINE void projection_interval(const btVector3 & direction, btScalar &vmin, btScalar &vmax) const
431
- {
432
- btVector3 center = (m_max+m_min)*0.5f;
433
- btVector3 extend = m_max-center;
434
-
435
- btScalar _fOrigin = direction.dot(center);
436
- btScalar _fMaximumExtent = extend.dot(direction.absolute());
437
- vmin = _fOrigin - _fMaximumExtent;
438
- vmax = _fOrigin + _fMaximumExtent;
439
- }
440
-
441
- SIMD_FORCE_INLINE ePLANE_INTERSECTION_TYPE plane_classify(const btVector4 &plane) const
442
- {
443
- btScalar _fmin,_fmax;
444
- this->projection_interval(plane,_fmin,_fmax);
445
-
446
- if(plane[3] > _fmax + BOX_PLANE_EPSILON)
447
- {
448
- return G_BACK_PLANE; // 0
449
- }
450
-
451
- if(plane[3]+BOX_PLANE_EPSILON >=_fmin)
452
- {
453
- return G_COLLIDE_PLANE; //1
454
- }
455
- return G_FRONT_PLANE;//2
456
- }
457
-
458
- SIMD_FORCE_INLINE bool overlapping_trans_conservative(const GIM_AABB & box, btTransform & trans1_to_0)
459
- {
460
- GIM_AABB tbox = box;
461
- tbox.appy_transform(trans1_to_0);
462
- return has_collision(tbox);
463
- }
464
-
465
- //! transcache is the transformation cache from box to this AABB
466
- SIMD_FORCE_INLINE bool overlapping_trans_cache(
467
- const GIM_AABB & box,const GIM_BOX_BOX_TRANSFORM_CACHE & transcache, bool fulltest)
468
- {
469
-
470
- //Taken from OPCODE
471
- btVector3 ea,eb;//extends
472
- btVector3 ca,cb;//extends
473
- get_center_extend(ca,ea);
474
- box.get_center_extend(cb,eb);
475
-
476
-
477
- btVector3 T;
478
- btScalar t,t2;
479
- int i;
480
-
481
- // Class I : A's basis vectors
482
- for(i=0;i<3;i++)
483
- {
484
- T[i] = transcache.m_R1to0[i].dot(cb) + transcache.m_T1to0[i] - ca[i];
485
- t = transcache.m_AR[i].dot(eb) + ea[i];
486
- if(GIM_GREATER(T[i], t)) return false;
487
- }
488
- // Class II : B's basis vectors
489
- for(i=0;i<3;i++)
490
- {
491
- t = MAT_DOT_COL(transcache.m_R1to0,T,i);
492
- t2 = MAT_DOT_COL(transcache.m_AR,ea,i) + eb[i];
493
- if(GIM_GREATER(t,t2)) return false;
494
- }
495
- // Class III : 9 cross products
496
- if(fulltest)
497
- {
498
- int j,m,n,o,p,q,r;
499
- for(i=0;i<3;i++)
500
- {
501
- m = (i+1)%3;
502
- n = (i+2)%3;
503
- o = i==0?1:0;
504
- p = i==2?1:2;
505
- for(j=0;j<3;j++)
506
- {
507
- q = j==2?1:2;
508
- r = j==0?1:0;
509
- t = T[n]*transcache.m_R1to0[m][j] - T[m]*transcache.m_R1to0[n][j];
510
- t2 = ea[o]*transcache.m_AR[p][j] + ea[p]*transcache.m_AR[o][j] +
511
- eb[r]*transcache.m_AR[i][q] + eb[q]*transcache.m_AR[i][r];
512
- if(GIM_GREATER(t,t2)) return false;
513
- }
514
- }
515
- }
516
- return true;
517
- }
518
-
519
- //! Simple test for planes.
520
- SIMD_FORCE_INLINE bool collide_plane(
521
- const btVector4 & plane)
522
- {
523
- ePLANE_INTERSECTION_TYPE classify = plane_classify(plane);
524
- return (classify == G_COLLIDE_PLANE);
525
- }
526
-
527
- //! test for a triangle, with edges
528
- SIMD_FORCE_INLINE bool collide_triangle_exact(
529
- const btVector3 & p1,
530
- const btVector3 & p2,
531
- const btVector3 & p3,
532
- const btVector4 & triangle_plane)
533
- {
534
- if(!collide_plane(triangle_plane)) return false;
535
-
536
- btVector3 center,extends;
537
- this->get_center_extend(center,extends);
538
-
539
- const btVector3 v1(p1 - center);
540
- const btVector3 v2(p2 - center);
541
- const btVector3 v3(p3 - center);
542
-
543
- //First axis
544
- btVector3 diff(v2 - v1);
545
- btVector3 abs_diff = diff.absolute();
546
- //Test With X axis
547
- TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v1,v3,extends);
548
- //Test With Y axis
549
- TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v1,v3,extends);
550
- //Test With Z axis
551
- TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v1,v3,extends);
552
-
553
-
554
- diff = v3 - v2;
555
- abs_diff = diff.absolute();
556
- //Test With X axis
557
- TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v2,v1,extends);
558
- //Test With Y axis
559
- TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v2,v1,extends);
560
- //Test With Z axis
561
- TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v2,v1,extends);
562
-
563
- diff = v1 - v3;
564
- abs_diff = diff.absolute();
565
- //Test With X axis
566
- TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v3,v2,extends);
567
- //Test With Y axis
568
- TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v3,v2,extends);
569
- //Test With Z axis
570
- TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v3,v2,extends);
571
-
572
- return true;
573
- }
574
- };
575
-
576
-
577
- //! Compairison of transformation objects
578
- SIMD_FORCE_INLINE bool btCompareTransformsEqual(const btTransform & t1,const btTransform & t2)
579
- {
580
- if(!(t1.getOrigin() == t2.getOrigin()) ) return false;
581
-
582
- if(!(t1.getBasis().getRow(0) == t2.getBasis().getRow(0)) ) return false;
583
- if(!(t1.getBasis().getRow(1) == t2.getBasis().getRow(1)) ) return false;
584
- if(!(t1.getBasis().getRow(2) == t2.getBasis().getRow(2)) ) return false;
585
- return true;
586
- }
587
-
588
-
589
-
590
- #endif // GIM_BOX_COLLISION_H_INCLUDED