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,748 +0,0 @@
1
- /*
2
- Bullet Continuous Collision Detection and Physics Library
3
- Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
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
- #ifndef BT_SOFT_BODY_SOLVER_DATA_H
17
- #define BT_SOFT_BODY_SOLVER_DATA_H
18
-
19
- #include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h"
20
- #include "vectormath/vmInclude.h"
21
-
22
-
23
- class btSoftBodyLinkData
24
- {
25
- public:
26
- /**
27
- * Class representing a link as a set of three indices into the vertex array.
28
- */
29
- class LinkNodePair
30
- {
31
- public:
32
- int vertex0;
33
- int vertex1;
34
-
35
- LinkNodePair()
36
- {
37
- vertex0 = 0;
38
- vertex1 = 0;
39
- }
40
-
41
- LinkNodePair( int v0, int v1 )
42
- {
43
- vertex0 = v0;
44
- vertex1 = v1;
45
- }
46
- };
47
-
48
- /**
49
- * Class describing a link for input into the system.
50
- */
51
- class LinkDescription
52
- {
53
- protected:
54
- int m_vertex0;
55
- int m_vertex1;
56
- float m_linkLinearStiffness;
57
- float m_linkStrength;
58
-
59
- public:
60
-
61
- LinkDescription()
62
- {
63
- m_vertex0 = 0;
64
- m_vertex1 = 0;
65
- m_linkLinearStiffness = 1.0;
66
- m_linkStrength = 1.0;
67
- }
68
-
69
- LinkDescription( int newVertex0, int newVertex1, float linkLinearStiffness )
70
- {
71
- m_vertex0 = newVertex0;
72
- m_vertex1 = newVertex1;
73
- m_linkLinearStiffness = linkLinearStiffness;
74
- m_linkStrength = 1.0;
75
- }
76
-
77
- LinkNodePair getVertexPair() const
78
- {
79
- LinkNodePair nodes;
80
- nodes.vertex0 = m_vertex0;
81
- nodes.vertex1 = m_vertex1;
82
- return nodes;
83
- }
84
-
85
- void setVertex0( int vertex )
86
- {
87
- m_vertex0 = vertex;
88
- }
89
-
90
- void setVertex1( int vertex )
91
- {
92
- m_vertex1 = vertex;
93
- }
94
-
95
- void setLinkLinearStiffness( float linearStiffness )
96
- {
97
- m_linkLinearStiffness = linearStiffness;
98
- }
99
-
100
- void setLinkStrength( float strength )
101
- {
102
- m_linkStrength = strength;
103
- }
104
-
105
- int getVertex0() const
106
- {
107
- return m_vertex0;
108
- }
109
-
110
- int getVertex1() const
111
- {
112
- return m_vertex1;
113
- }
114
-
115
- float getLinkStrength() const
116
- {
117
- return m_linkStrength;
118
- }
119
-
120
- float getLinkLinearStiffness() const
121
- {
122
- return m_linkLinearStiffness;
123
- }
124
- };
125
-
126
-
127
- protected:
128
- // NOTE:
129
- // Vertex reference data is stored relative to global array, not relative to individual cloth.
130
- // Values must be correct if being passed into single-cloth VBOs or when migrating from one solver
131
- // to another.
132
-
133
- btAlignedObjectArray< LinkNodePair > m_links; // Vertex pair for the link
134
- btAlignedObjectArray< float > m_linkStrength; // Strength of each link
135
- // (inverseMassA + inverseMassB)/ linear stiffness coefficient
136
- btAlignedObjectArray< float > m_linksMassLSC;
137
- btAlignedObjectArray< float > m_linksRestLengthSquared;
138
- // Current vector length of link
139
- btAlignedObjectArray< Vectormath::Aos::Vector3 > m_linksCLength;
140
- // 1/(current length * current length * massLSC)
141
- btAlignedObjectArray< float > m_linksLengthRatio;
142
- btAlignedObjectArray< float > m_linksRestLength;
143
- btAlignedObjectArray< float > m_linksMaterialLinearStiffnessCoefficient;
144
-
145
- public:
146
- btSoftBodyLinkData()
147
- {
148
- }
149
-
150
- virtual ~btSoftBodyLinkData()
151
- {
152
- }
153
-
154
- virtual void clear()
155
- {
156
- m_links.resize(0);
157
- m_linkStrength.resize(0);
158
- m_linksMassLSC.resize(0);
159
- m_linksRestLengthSquared.resize(0);
160
- m_linksLengthRatio.resize(0);
161
- m_linksRestLength.resize(0);
162
- m_linksMaterialLinearStiffnessCoefficient.resize(0);
163
- }
164
-
165
- int getNumLinks()
166
- {
167
- return m_links.size();
168
- }
169
-
170
- /** Allocate enough space in all link-related arrays to fit numLinks links */
171
- virtual void createLinks( int numLinks )
172
- {
173
- int previousSize = m_links.size();
174
- int newSize = previousSize + numLinks;
175
-
176
- // Resize all the arrays that store link data
177
- m_links.resize( newSize );
178
- m_linkStrength.resize( newSize );
179
- m_linksMassLSC.resize( newSize );
180
- m_linksRestLengthSquared.resize( newSize );
181
- m_linksCLength.resize( newSize );
182
- m_linksLengthRatio.resize( newSize );
183
- m_linksRestLength.resize( newSize );
184
- m_linksMaterialLinearStiffnessCoefficient.resize( newSize );
185
- }
186
-
187
- /** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
188
- virtual void setLinkAt( const LinkDescription &link, int linkIndex )
189
- {
190
- m_links[linkIndex] = link.getVertexPair();
191
- m_linkStrength[linkIndex] = link.getLinkStrength();
192
- m_linksMassLSC[linkIndex] = 0.f;
193
- m_linksRestLengthSquared[linkIndex] = 0.f;
194
- m_linksCLength[linkIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
195
- m_linksLengthRatio[linkIndex] = 0.f;
196
- m_linksRestLength[linkIndex] = 0.f;
197
- m_linksMaterialLinearStiffnessCoefficient[linkIndex] = link.getLinkLinearStiffness();
198
- }
199
-
200
-
201
- /**
202
- * Return true if data is on the accelerator.
203
- * The CPU version of this class will return true here because
204
- * the CPU is the same as the accelerator.
205
- */
206
- virtual bool onAccelerator()
207
- {
208
- return true;
209
- }
210
-
211
- /**
212
- * Move data from host memory to the accelerator.
213
- * The CPU version will always return that it has moved it.
214
- */
215
- virtual bool moveToAccelerator()
216
- {
217
- return true;
218
- }
219
-
220
- /**
221
- * Move data from host memory from the accelerator.
222
- * The CPU version will always return that it has moved it.
223
- */
224
- virtual bool moveFromAccelerator()
225
- {
226
- return true;
227
- }
228
-
229
-
230
-
231
- /**
232
- * Return reference to the vertex index pair for link linkIndex as stored on the host.
233
- */
234
- LinkNodePair &getVertexPair( int linkIndex )
235
- {
236
- return m_links[linkIndex];
237
- }
238
-
239
- /**
240
- * Return reference to strength of link linkIndex as stored on the host.
241
- */
242
- float &getStrength( int linkIndex )
243
- {
244
- return m_linkStrength[linkIndex];
245
- }
246
-
247
- /**
248
- * Return a reference to the strength of the link corrected for link sorting.
249
- * This is important if we are using data on an accelerator which has the data sorted in some fashion.
250
- */
251
- virtual float &getStrengthCorrected( int linkIndex )
252
- {
253
- return getStrength( linkIndex );
254
- }
255
-
256
- /**
257
- * Return reference to the rest length of link linkIndex as stored on the host.
258
- */
259
- float &getRestLength( int linkIndex )
260
- {
261
- return m_linksRestLength[linkIndex];
262
- }
263
-
264
- /**
265
- * Return reference to linear stiffness coefficient for link linkIndex as stored on the host.
266
- */
267
- float &getLinearStiffnessCoefficient( int linkIndex )
268
- {
269
- return m_linksMaterialLinearStiffnessCoefficient[linkIndex];
270
- }
271
-
272
- /**
273
- * Return reference to the MassLSC value for link linkIndex as stored on the host.
274
- */
275
- float &getMassLSC( int linkIndex )
276
- {
277
- return m_linksMassLSC[linkIndex];
278
- }
279
-
280
- /**
281
- * Return reference to rest length squared for link linkIndex as stored on the host.
282
- */
283
- float &getRestLengthSquared( int linkIndex )
284
- {
285
- return m_linksRestLengthSquared[linkIndex];
286
- }
287
-
288
- /**
289
- * Return reference to current length of link linkIndex as stored on the host.
290
- */
291
- Vectormath::Aos::Vector3 &getCurrentLength( int linkIndex )
292
- {
293
- return m_linksCLength[linkIndex];
294
- }
295
-
296
- /**
297
- * Return the link length ratio from for link linkIndex as stored on the host.
298
- */
299
- float &getLinkLengthRatio( int linkIndex )
300
- {
301
- return m_linksLengthRatio[linkIndex];
302
- }
303
- };
304
-
305
-
306
-
307
- /**
308
- * Wrapper for vertex data information.
309
- * By wrapping it like this we stand a good chance of being able to optimise for storage format easily.
310
- * It should also help us make sure all the data structures remain consistent.
311
- */
312
- class btSoftBodyVertexData
313
- {
314
- public:
315
- /**
316
- * Class describing a vertex for input into the system.
317
- */
318
- class VertexDescription
319
- {
320
- private:
321
- Vectormath::Aos::Point3 m_position;
322
- /** Inverse mass. If this is 0f then the mass was 0 because that simplifies calculations. */
323
- float m_inverseMass;
324
-
325
- public:
326
- VertexDescription()
327
- {
328
- m_position = Vectormath::Aos::Point3( 0.f, 0.f, 0.f );
329
- m_inverseMass = 0.f;
330
- }
331
-
332
- VertexDescription( const Vectormath::Aos::Point3 &position, float mass )
333
- {
334
- m_position = position;
335
- if( mass > 0.f )
336
- m_inverseMass = 1.0f/mass;
337
- else
338
- m_inverseMass = 0.f;
339
- }
340
-
341
- void setPosition( const Vectormath::Aos::Point3 &position )
342
- {
343
- m_position = position;
344
- }
345
-
346
- void setInverseMass( float inverseMass )
347
- {
348
- m_inverseMass = inverseMass;
349
- }
350
-
351
- void setMass( float mass )
352
- {
353
- if( mass > 0.f )
354
- m_inverseMass = 1.0f/mass;
355
- else
356
- m_inverseMass = 0.f;
357
- }
358
-
359
- Vectormath::Aos::Point3 getPosition() const
360
- {
361
- return m_position;
362
- }
363
-
364
- float getInverseMass() const
365
- {
366
- return m_inverseMass;
367
- }
368
-
369
- float getMass() const
370
- {
371
- if( m_inverseMass == 0.f )
372
- return 0.f;
373
- else
374
- return 1.0f/m_inverseMass;
375
- }
376
- };
377
- protected:
378
-
379
- // identifier for the individual cloth
380
- // For the CPU we don't really need this as we can grab the cloths and iterate over only their vertices
381
- // For a parallel accelerator knowing on a per-vertex basis which cloth we're part of will help for obtaining
382
- // per-cloth data
383
- // For sorting etc it might also be helpful to be able to use in-array data such as this.
384
- btAlignedObjectArray< int > m_clothIdentifier;
385
- btAlignedObjectArray< Vectormath::Aos::Point3 > m_vertexPosition; // vertex positions
386
- btAlignedObjectArray< Vectormath::Aos::Point3 > m_vertexPreviousPosition; // vertex positions
387
- btAlignedObjectArray< Vectormath::Aos::Vector3 > m_vertexVelocity; // Velocity
388
- btAlignedObjectArray< Vectormath::Aos::Vector3 > m_vertexForceAccumulator; // Force accumulator
389
- btAlignedObjectArray< Vectormath::Aos::Vector3 > m_vertexNormal; // Normals
390
- btAlignedObjectArray< float > m_vertexInverseMass; // Inverse mass
391
- btAlignedObjectArray< float > m_vertexArea; // Area controlled by the vertex
392
- btAlignedObjectArray< int > m_vertexTriangleCount; // Number of triangles touching this vertex
393
-
394
- public:
395
- btSoftBodyVertexData()
396
- {
397
- }
398
-
399
- virtual ~btSoftBodyVertexData()
400
- {
401
- }
402
-
403
- virtual void clear()
404
- {
405
- m_clothIdentifier.resize(0);
406
- m_vertexPosition.resize(0);
407
- m_vertexPreviousPosition.resize(0);
408
- m_vertexVelocity.resize(0);
409
- m_vertexForceAccumulator.resize(0);
410
- m_vertexNormal.resize(0);
411
- m_vertexInverseMass.resize(0);
412
- m_vertexArea.resize(0);
413
- m_vertexTriangleCount.resize(0);
414
- }
415
-
416
- int getNumVertices()
417
- {
418
- return m_vertexPosition.size();
419
- }
420
-
421
- int getClothIdentifier( int vertexIndex )
422
- {
423
- return m_clothIdentifier[vertexIndex];
424
- }
425
-
426
- void setVertexAt( const VertexDescription &vertex, int vertexIndex )
427
- {
428
- m_vertexPosition[vertexIndex] = vertex.getPosition();
429
- m_vertexPreviousPosition[vertexIndex] = vertex.getPosition();
430
- m_vertexVelocity[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
431
- m_vertexForceAccumulator[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
432
- m_vertexNormal[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
433
- m_vertexInverseMass[vertexIndex] = vertex.getInverseMass();
434
- m_vertexArea[vertexIndex] = 0.f;
435
- m_vertexTriangleCount[vertexIndex] = 0;
436
- }
437
-
438
- /**
439
- * Create numVertices new vertices for cloth clothIdentifier
440
- * maxVertices allows a buffer zone of extra vertices for alignment or tearing reasons.
441
- */
442
- void createVertices( int numVertices, int clothIdentifier, int maxVertices = 0 )
443
- {
444
- int previousSize = m_vertexPosition.size();
445
- if( maxVertices == 0 )
446
- maxVertices = numVertices;
447
- int newSize = previousSize + maxVertices;
448
-
449
- // Resize all the arrays that store vertex data
450
- m_clothIdentifier.resize( newSize );
451
- m_vertexPosition.resize( newSize );
452
- m_vertexPreviousPosition.resize( newSize );
453
- m_vertexVelocity.resize( newSize );
454
- m_vertexForceAccumulator.resize( newSize );
455
- m_vertexNormal.resize( newSize );
456
- m_vertexInverseMass.resize( newSize );
457
- m_vertexArea.resize( newSize );
458
- m_vertexTriangleCount.resize( newSize );
459
-
460
- for( int vertexIndex = previousSize; vertexIndex < newSize; ++vertexIndex )
461
- m_clothIdentifier[vertexIndex] = clothIdentifier;
462
- for( int vertexIndex = (previousSize + numVertices); vertexIndex < newSize; ++vertexIndex )
463
- m_clothIdentifier[vertexIndex] = -1;
464
- }
465
-
466
- // Get and set methods in header so they can be inlined
467
-
468
- /**
469
- * Return a reference to the position of vertex vertexIndex as stored on the host.
470
- */
471
- Vectormath::Aos::Point3 &getPosition( int vertexIndex )
472
- {
473
- return m_vertexPosition[vertexIndex];
474
- }
475
-
476
- Vectormath::Aos::Point3 getPosition( int vertexIndex ) const
477
- {
478
- return m_vertexPosition[vertexIndex];
479
- }
480
-
481
- /**
482
- * Return a reference to the previous position of vertex vertexIndex as stored on the host.
483
- */
484
- Vectormath::Aos::Point3 &getPreviousPosition( int vertexIndex )
485
- {
486
- return m_vertexPreviousPosition[vertexIndex];
487
- }
488
-
489
- /**
490
- * Return a reference to the velocity of vertex vertexIndex as stored on the host.
491
- */
492
- Vectormath::Aos::Vector3 &getVelocity( int vertexIndex )
493
- {
494
- return m_vertexVelocity[vertexIndex];
495
- }
496
-
497
- /**
498
- * Return a reference to the force accumulator of vertex vertexIndex as stored on the host.
499
- */
500
- Vectormath::Aos::Vector3 &getForceAccumulator( int vertexIndex )
501
- {
502
- return m_vertexForceAccumulator[vertexIndex];
503
- }
504
-
505
- /**
506
- * Return a reference to the normal of vertex vertexIndex as stored on the host.
507
- */
508
- Vectormath::Aos::Vector3 &getNormal( int vertexIndex )
509
- {
510
- return m_vertexNormal[vertexIndex];
511
- }
512
-
513
- Vectormath::Aos::Vector3 getNormal( int vertexIndex ) const
514
- {
515
- return m_vertexNormal[vertexIndex];
516
- }
517
-
518
- /**
519
- * Return a reference to the inverse mass of vertex vertexIndex as stored on the host.
520
- */
521
- float &getInverseMass( int vertexIndex )
522
- {
523
- return m_vertexInverseMass[vertexIndex];
524
- }
525
-
526
- /**
527
- * Get access to the area controlled by this vertex.
528
- */
529
- float &getArea( int vertexIndex )
530
- {
531
- return m_vertexArea[vertexIndex];
532
- }
533
-
534
- /**
535
- * Get access to the array of how many triangles touch each vertex.
536
- */
537
- int &getTriangleCount( int vertexIndex )
538
- {
539
- return m_vertexTriangleCount[vertexIndex];
540
- }
541
-
542
-
543
-
544
- /**
545
- * Return true if data is on the accelerator.
546
- * The CPU version of this class will return true here because
547
- * the CPU is the same as the accelerator.
548
- */
549
- virtual bool onAccelerator()
550
- {
551
- return true;
552
- }
553
-
554
- /**
555
- * Move data from host memory to the accelerator.
556
- * The CPU version will always return that it has moved it.
557
- */
558
- virtual bool moveToAccelerator()
559
- {
560
- return true;
561
- }
562
-
563
- /**
564
- * Move data to host memory from the accelerator if bCopy is false.
565
- * If bCopy is true, copy data to host memory from the accelerator so that data
566
- * won't be moved to accelerator when moveToAccelerator() is called next time.
567
- * If bCopyMinimum is true, only vertex position and normal are copied.
568
- * bCopyMinimum will be meaningful only if bCopy is true.
569
- * The CPU version will always return that it has moved it.
570
- */
571
- virtual bool moveFromAccelerator(bool bCopy = false, bool bCopyMinimum = true)
572
- {
573
- return true;
574
- }
575
-
576
- btAlignedObjectArray< Vectormath::Aos::Point3 > &getVertexPositions()
577
- {
578
- return m_vertexPosition;
579
- }
580
- };
581
-
582
-
583
- class btSoftBodyTriangleData
584
- {
585
- public:
586
- /**
587
- * Class representing a triangle as a set of three indices into the
588
- * vertex array.
589
- */
590
- class TriangleNodeSet
591
- {
592
- public:
593
- int vertex0;
594
- int vertex1;
595
- int vertex2;
596
- int _padding;
597
-
598
- TriangleNodeSet( )
599
- {
600
- vertex0 = 0;
601
- vertex1 = 0;
602
- vertex2 = 0;
603
- _padding = -1;
604
- }
605
-
606
- TriangleNodeSet( int newVertex0, int newVertex1, int newVertex2 )
607
- {
608
- vertex0 = newVertex0;
609
- vertex1 = newVertex1;
610
- vertex2 = newVertex2;
611
- }
612
- };
613
-
614
- class TriangleDescription
615
- {
616
- protected:
617
- int m_vertex0;
618
- int m_vertex1;
619
- int m_vertex2;
620
-
621
- public:
622
- TriangleDescription()
623
- {
624
- m_vertex0 = 0;
625
- m_vertex1 = 0;
626
- m_vertex2 = 0;
627
- }
628
-
629
- TriangleDescription( int newVertex0, int newVertex1, int newVertex2 )
630
- {
631
- m_vertex0 = newVertex0;
632
- m_vertex1 = newVertex1;
633
- m_vertex2 = newVertex2;
634
- }
635
-
636
- TriangleNodeSet getVertexSet() const
637
- {
638
- btSoftBodyTriangleData::TriangleNodeSet nodes;
639
- nodes.vertex0 = m_vertex0;
640
- nodes.vertex1 = m_vertex1;
641
- nodes.vertex2 = m_vertex2;
642
- return nodes;
643
- }
644
- };
645
-
646
- protected:
647
- // NOTE:
648
- // Vertex reference data is stored relative to global array, not relative to individual cloth.
649
- // Values must be correct if being passed into single-cloth VBOs or when migrating from one solver
650
- // to another.
651
- btAlignedObjectArray< TriangleNodeSet > m_vertexIndices;
652
- btAlignedObjectArray< float > m_area;
653
- btAlignedObjectArray< Vectormath::Aos::Vector3 > m_normal;
654
-
655
- public:
656
- btSoftBodyTriangleData()
657
- {
658
- }
659
-
660
- virtual ~btSoftBodyTriangleData()
661
- {
662
-
663
- }
664
-
665
- virtual void clear()
666
- {
667
- m_vertexIndices.resize(0);
668
- m_area.resize(0);
669
- m_normal.resize(0);
670
- }
671
-
672
- int getNumTriangles()
673
- {
674
- return m_vertexIndices.size();
675
- }
676
-
677
- virtual void setTriangleAt( const TriangleDescription &triangle, int triangleIndex )
678
- {
679
- m_vertexIndices[triangleIndex] = triangle.getVertexSet();
680
- }
681
-
682
- virtual void createTriangles( int numTriangles )
683
- {
684
- int previousSize = m_vertexIndices.size();
685
- int newSize = previousSize + numTriangles;
686
-
687
- // Resize all the arrays that store triangle data
688
- m_vertexIndices.resize( newSize );
689
- m_area.resize( newSize );
690
- m_normal.resize( newSize );
691
- }
692
-
693
- /**
694
- * Return the vertex index set for triangle triangleIndex as stored on the host.
695
- */
696
- const TriangleNodeSet &getVertexSet( int triangleIndex )
697
- {
698
- return m_vertexIndices[triangleIndex];
699
- }
700
-
701
- /**
702
- * Get access to the triangle area.
703
- */
704
- float &getTriangleArea( int triangleIndex )
705
- {
706
- return m_area[triangleIndex];
707
- }
708
-
709
- /**
710
- * Get access to the normal vector for this triangle.
711
- */
712
- Vectormath::Aos::Vector3 &getNormal( int triangleIndex )
713
- {
714
- return m_normal[triangleIndex];
715
- }
716
-
717
- /**
718
- * Return true if data is on the accelerator.
719
- * The CPU version of this class will return true here because
720
- * the CPU is the same as the accelerator.
721
- */
722
- virtual bool onAccelerator()
723
- {
724
- return true;
725
- }
726
-
727
- /**
728
- * Move data from host memory to the accelerator.
729
- * The CPU version will always return that it has moved it.
730
- */
731
- virtual bool moveToAccelerator()
732
- {
733
- return true;
734
- }
735
-
736
- /**
737
- * Move data from host memory from the accelerator.
738
- * The CPU version will always return that it has moved it.
739
- */
740
- virtual bool moveFromAccelerator()
741
- {
742
- return true;
743
- }
744
- };
745
-
746
-
747
- #endif // #ifndef BT_SOFT_BODY_SOLVER_DATA_H
748
-