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.
- checksums.yaml +7 -0
- data/README.md +3 -0
- data/Rakefile +14 -2
- data/bindings/bullet/interface/BulletCollision/CollisionDispatch/btCollisionWorld.i +2 -2
- data/bindings/bullet/interface/bullet_wrap.cpp +17548 -6035
- data/bindings/bullet/interface/bullet_wrap.h +7 -7
- data/bindings/bullet/interface/bullet_wrap.o +0 -0
- data/lib/bullet.so +0 -0
- data/lib/ruby-bullet/version.rb +1 -1
- data/ruby-bullet.gemspec +0 -3
- metadata +169 -444
- data/deps/include/bullet/Bullet-C-Api.h +0 -176
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.h +0 -1051
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h +0 -82
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h +0 -270
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h +0 -80
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvt.h +0 -1257
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h +0 -146
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h +0 -110
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h +0 -151
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h +0 -469
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h +0 -40
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h +0 -579
- data/deps/include/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h +0 -171
- data/deps/include/bullet/BulletCollision/CollisionDispatch/SphereTriangleDetector.h +0 -51
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h +0 -36
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h +0 -66
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h +0 -66
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btBoxBoxDetector.h +0 -44
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionConfiguration.h +0 -48
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h +0 -45
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h +0 -172
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h +0 -524
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h +0 -509
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h +0 -86
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h +0 -95
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h +0 -116
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h +0 -109
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h +0 -84
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h +0 -137
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h +0 -54
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h +0 -175
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h +0 -46
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btManifoldResult.h +0 -128
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btSimulationIslandManager.h +0 -81
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h +0 -75
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h +0 -66
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h +0 -69
- data/deps/include/bullet/BulletCollision/CollisionDispatch/btUnionFind.h +0 -129
- data/deps/include/bullet/BulletCollision/CollisionShapes/btBox2dShape.h +0 -369
- data/deps/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h +0 -312
- data/deps/include/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h +0 -139
- data/deps/include/bullet/BulletCollision/CollisionShapes/btCapsuleShape.h +0 -173
- data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionMargin.h +0 -27
- data/deps/include/bullet/BulletCollision/CollisionShapes/btCollisionShape.h +0 -150
- data/deps/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h +0 -212
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConcaveShape.h +0 -60
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConeShape.h +0 -103
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvex2dShape.h +0 -80
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexHullShape.h +0 -122
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h +0 -224
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.h +0 -105
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.h +0 -62
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexShape.h +0 -84
- data/deps/include/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h +0 -75
- data/deps/include/bullet/BulletCollision/CollisionShapes/btCylinderShape.h +0 -200
- data/deps/include/bullet/BulletCollision/CollisionShapes/btEmptyShape.h +0 -70
- data/deps/include/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h +0 -161
- data/deps/include/bullet/BulletCollision/CollisionShapes/btMaterial.h +0 -35
- data/deps/include/bullet/BulletCollision/CollisionShapes/btMinkowskiSumShape.h +0 -60
- data/deps/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h +0 -99
- data/deps/include/bullet/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h +0 -120
- data/deps/include/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.h +0 -65
- data/deps/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h +0 -112
- data/deps/include/bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h +0 -93
- data/deps/include/bullet/BulletCollision/CollisionShapes/btShapeHull.h +0 -59
- data/deps/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h +0 -73
- data/deps/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h +0 -103
- data/deps/include/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.h +0 -162
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.h +0 -74
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleBuffer.h +0 -69
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleCallback.h +0 -42
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h +0 -133
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h +0 -84
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleInfoMap.h +0 -241
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMesh.h +0 -69
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h +0 -89
- data/deps/include/bullet/BulletCollision/CollisionShapes/btTriangleShape.h +0 -182
- data/deps/include/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.h +0 -87
- data/deps/include/bullet/BulletCollision/Gimpact/btBoxCollision.h +0 -647
- data/deps/include/bullet/BulletCollision/Gimpact/btClipPolygon.h +0 -182
- data/deps/include/bullet/BulletCollision/Gimpact/btContactProcessing.h +0 -145
- data/deps/include/bullet/BulletCollision/Gimpact/btGImpactBvh.h +0 -396
- data/deps/include/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h +0 -306
- data/deps/include/bullet/BulletCollision/Gimpact/btGImpactMassUtil.h +0 -60
- data/deps/include/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.h +0 -372
- data/deps/include/bullet/BulletCollision/Gimpact/btGImpactShape.h +0 -1171
- data/deps/include/bullet/BulletCollision/Gimpact/btGenericPoolAllocator.h +0 -163
- data/deps/include/bullet/BulletCollision/Gimpact/btGeometryOperations.h +0 -212
- data/deps/include/bullet/BulletCollision/Gimpact/btQuantization.h +0 -88
- data/deps/include/bullet/BulletCollision/Gimpact/btTriangleShapeEx.h +0 -180
- data/deps/include/bullet/BulletCollision/Gimpact/gim_array.h +0 -326
- data/deps/include/bullet/BulletCollision/Gimpact/gim_basic_geometry_operations.h +0 -543
- data/deps/include/bullet/BulletCollision/Gimpact/gim_bitset.h +0 -123
- data/deps/include/bullet/BulletCollision/Gimpact/gim_box_collision.h +0 -590
- data/deps/include/bullet/BulletCollision/Gimpact/gim_box_set.h +0 -674
- data/deps/include/bullet/BulletCollision/Gimpact/gim_clip_polygon.h +0 -210
- data/deps/include/bullet/BulletCollision/Gimpact/gim_contact.h +0 -164
- data/deps/include/bullet/BulletCollision/Gimpact/gim_geom_types.h +0 -97
- data/deps/include/bullet/BulletCollision/Gimpact/gim_geometry.h +0 -42
- data/deps/include/bullet/BulletCollision/Gimpact/gim_hash_table.h +0 -902
- data/deps/include/bullet/BulletCollision/Gimpact/gim_linear_math.h +0 -1573
- data/deps/include/bullet/BulletCollision/Gimpact/gim_math.h +0 -157
- data/deps/include/bullet/BulletCollision/Gimpact/gim_memory.h +0 -190
- data/deps/include/bullet/BulletCollision/Gimpact/gim_radixsort.h +0 -406
- data/deps/include/bullet/BulletCollision/Gimpact/gim_tri_collision.h +0 -379
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h +0 -59
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h +0 -73
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h +0 -42
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h +0 -91
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h +0 -50
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h +0 -75
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h +0 -43
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h +0 -103
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h +0 -158
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h +0 -40
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h +0 -228
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPointCollector.h +0 -64
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h +0 -46
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h +0 -72
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h +0 -63
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h +0 -50
- data/deps/include/bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h +0 -179
- data/deps/include/bullet/BulletCollision/btBulletCollisionCommon.h +0 -69
- data/deps/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h +0 -46
- data/deps/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h +0 -163
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h +0 -346
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h +0 -52
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.h +0 -71
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h +0 -87
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h +0 -614
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h +0 -99
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.h +0 -58
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.h +0 -381
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btJacobianEntry.h +0 -156
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h +0 -161
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h +0 -130
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.h +0 -333
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h +0 -107
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h +0 -191
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h +0 -98
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h +0 -452
- data/deps/include/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.h +0 -62
- data/deps/include/bullet/BulletDynamics/Dynamics/btActionInterface.h +0 -46
- data/deps/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h +0 -203
- data/deps/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h +0 -151
- data/deps/include/bullet/BulletDynamics/Dynamics/btRigidBody.h +0 -691
- data/deps/include/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h +0 -89
- data/deps/include/bullet/BulletDynamics/Vehicle/btRaycastVehicle.h +0 -236
- data/deps/include/bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h +0 -35
- data/deps/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h +0 -119
- data/deps/include/bullet/BulletDynamics/btBulletDynamicsCommon.h +0 -48
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverBuffer_DX11.h +0 -323
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11.h +0 -103
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11SIMDAware.h +0 -173
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverTriangleData_DX11.h +0 -96
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexBuffer_DX11.h +0 -107
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexData_DX11.h +0 -63
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11.h +0 -691
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11SIMDAware.h +0 -81
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverBuffer_OpenCL.h +0 -209
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCL.h +0 -99
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCLSIMDAware.h +0 -169
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverOutputCLtoGL.h +0 -62
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverTriangleData_OpenCL.h +0 -84
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexBuffer_OpenGL.h +0 -166
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexData_OpenCL.h +0 -52
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCL.h +0 -527
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCLSIMDAware.h +0 -81
- data/deps/include/bullet/BulletMultiThreaded/GpuSoftBodySolvers/Shared/btSoftBodySolverData.h +0 -748
- data/deps/include/bullet/BulletMultiThreaded/HeapManager.h +0 -117
- data/deps/include/bullet/BulletMultiThreaded/PlatformDefinitions.h +0 -99
- data/deps/include/bullet/BulletMultiThreaded/PosixThreadSupport.h +0 -142
- data/deps/include/bullet/BulletMultiThreaded/PpuAddressSpace.h +0 -37
- data/deps/include/bullet/BulletMultiThreaded/SequentialThreadSupport.h +0 -96
- data/deps/include/bullet/BulletMultiThreaded/SpuCollisionObjectWrapper.h +0 -40
- data/deps/include/bullet/BulletMultiThreaded/SpuCollisionTaskProcess.h +0 -163
- data/deps/include/bullet/BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h +0 -120
- data/deps/include/bullet/BulletMultiThreaded/SpuDoubleBuffer.h +0 -126
- data/deps/include/bullet/BulletMultiThreaded/SpuFakeDma.h +0 -135
- data/deps/include/bullet/BulletMultiThreaded/SpuGatheringCollisionDispatcher.h +0 -72
- data/deps/include/bullet/BulletMultiThreaded/SpuLibspe2Support.h +0 -180
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h +0 -167
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h +0 -128
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h +0 -106
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h +0 -51
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h +0 -140
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h +0 -19
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h +0 -48
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h +0 -70
- data/deps/include/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h +0 -65
- data/deps/include/bullet/BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h +0 -54
- data/deps/include/bullet/BulletMultiThreaded/SpuSampleTaskProcess.h +0 -153
- data/deps/include/bullet/BulletMultiThreaded/SpuSync.h +0 -149
- data/deps/include/bullet/BulletMultiThreaded/TrbDynBody.h +0 -79
- data/deps/include/bullet/BulletMultiThreaded/TrbStateVec.h +0 -339
- data/deps/include/bullet/BulletMultiThreaded/Win32ThreadSupport.h +0 -138
- data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphase.h +0 -138
- data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedCode.h +0 -430
- data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedDefs.h +0 -61
- data/deps/include/bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedTypes.h +0 -67
- data/deps/include/bullet/BulletMultiThreaded/btGpuDefines.h +0 -211
- data/deps/include/bullet/BulletMultiThreaded/btGpuUtilsSharedCode.h +0 -55
- data/deps/include/bullet/BulletMultiThreaded/btGpuUtilsSharedDefs.h +0 -52
- data/deps/include/bullet/BulletMultiThreaded/btParallelConstraintSolver.h +0 -285
- data/deps/include/bullet/BulletMultiThreaded/btThreadSupportInterface.h +0 -85
- data/deps/include/bullet/BulletMultiThreaded/vectormath2bullet.h +0 -73
- data/deps/include/bullet/BulletSoftBody/btDefaultSoftBodySolver.h +0 -63
- data/deps/include/bullet/BulletSoftBody/btSoftBody.h +0 -987
- data/deps/include/bullet/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h +0 -153
- data/deps/include/bullet/BulletSoftBody/btSoftBodyData.h +0 -217
- data/deps/include/bullet/BulletSoftBody/btSoftBodyHelpers.h +0 -143
- data/deps/include/bullet/BulletSoftBody/btSoftBodyInternals.h +0 -930
- data/deps/include/bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h +0 -48
- data/deps/include/bullet/BulletSoftBody/btSoftBodySolverVertexBuffer.h +0 -165
- data/deps/include/bullet/BulletSoftBody/btSoftBodySolvers.h +0 -154
- data/deps/include/bullet/BulletSoftBody/btSoftRigidCollisionAlgorithm.h +0 -75
- data/deps/include/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.h +0 -107
- data/deps/include/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.h +0 -69
- data/deps/include/bullet/BulletSoftBody/btSparseSDF.h +0 -306
- data/deps/include/bullet/LinearMath/btAabbUtil2.h +0 -236
- data/deps/include/bullet/LinearMath/btAlignedAllocator.h +0 -107
- data/deps/include/bullet/LinearMath/btAlignedObjectArray.h +0 -494
- data/deps/include/bullet/LinearMath/btConvexHull.h +0 -241
- data/deps/include/bullet/LinearMath/btConvexHullComputer.h +0 -103
- data/deps/include/bullet/LinearMath/btDefaultMotionState.h +0 -40
- data/deps/include/bullet/LinearMath/btGeometryUtil.h +0 -42
- data/deps/include/bullet/LinearMath/btGrahamScan2dConvexHull.h +0 -110
- data/deps/include/bullet/LinearMath/btHashMap.h +0 -450
- data/deps/include/bullet/LinearMath/btIDebugDraw.h +0 -418
- data/deps/include/bullet/LinearMath/btList.h +0 -73
- data/deps/include/bullet/LinearMath/btMatrix3x3.h +0 -771
- data/deps/include/bullet/LinearMath/btMinMax.h +0 -71
- data/deps/include/bullet/LinearMath/btMotionState.h +0 -40
- data/deps/include/bullet/LinearMath/btPoolAllocator.h +0 -121
- data/deps/include/bullet/LinearMath/btQuadWord.h +0 -180
- data/deps/include/bullet/LinearMath/btQuaternion.h +0 -430
- data/deps/include/bullet/LinearMath/btQuickprof.h +0 -203
- data/deps/include/bullet/LinearMath/btRandom.h +0 -42
- data/deps/include/bullet/LinearMath/btScalar.h +0 -539
- data/deps/include/bullet/LinearMath/btSerializer.h +0 -639
- data/deps/include/bullet/LinearMath/btStackAlloc.h +0 -116
- data/deps/include/bullet/LinearMath/btTransform.h +0 -307
- data/deps/include/bullet/LinearMath/btTransformUtil.h +0 -228
- data/deps/include/bullet/LinearMath/btVector3.h +0 -766
- data/deps/include/bullet/MiniCL/MiniCLTask/MiniCLTask.h +0 -62
- data/deps/include/bullet/MiniCL/MiniCLTaskScheduler.h +0 -194
- data/deps/include/bullet/MiniCL/cl.h +0 -867
- data/deps/include/bullet/MiniCL/cl_MiniCL_Defs.h +0 -439
- data/deps/include/bullet/MiniCL/cl_gl.h +0 -113
- data/deps/include/bullet/MiniCL/cl_platform.h +0 -254
- data/deps/include/bullet/btBulletCollisionCommon.h +0 -69
- data/deps/include/bullet/btBulletDynamicsCommon.h +0 -48
- data/deps/include/bullet/vectormath/scalar/boolInVec.h +0 -225
- data/deps/include/bullet/vectormath/scalar/floatInVec.h +0 -343
- data/deps/include/bullet/vectormath/scalar/mat_aos.h +0 -1630
- data/deps/include/bullet/vectormath/scalar/quat_aos.h +0 -433
- data/deps/include/bullet/vectormath/scalar/vec_aos.h +0 -1426
- data/deps/include/bullet/vectormath/scalar/vectormath_aos.h +0 -1872
- data/deps/include/bullet/vectormath/sse/boolInVec.h +0 -247
- data/deps/include/bullet/vectormath/sse/floatInVec.h +0 -340
- data/deps/include/bullet/vectormath/sse/mat_aos.h +0 -2190
- data/deps/include/bullet/vectormath/sse/quat_aos.h +0 -579
- data/deps/include/bullet/vectormath/sse/vec_aos.h +0 -1455
- data/deps/include/bullet/vectormath/sse/vecidx_aos.h +0 -80
- data/deps/include/bullet/vectormath/sse/vectormath_aos.h +0 -2547
- data/deps/include/bullet/vectormath/vmInclude.h +0 -27
- data/deps/lib/libBulletCollision.a +0 -0
- data/deps/lib/libBulletDynamics.a +0 -0
- data/deps/lib/libBulletMultiThreaded.a +0 -0
- data/deps/lib/libBulletSoftBody.a +0 -0
- data/deps/lib/libBulletSoftBodySolvers_OpenCL_Mini.a +0 -0
- data/deps/lib/libLinearMath.a +0 -0
- data/deps/lib/libMiniCL.a +0 -0
@@ -1,306 +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
|
-
///btSparseSdf implementation by Nathanael Presson
|
16
|
-
|
17
|
-
#ifndef BT_SPARSE_SDF_H
|
18
|
-
#define BT_SPARSE_SDF_H
|
19
|
-
|
20
|
-
#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
|
21
|
-
#include "BulletCollision/NarrowPhaseCollision/btGjkEpa2.h"
|
22
|
-
|
23
|
-
// Modified Paul Hsieh hash
|
24
|
-
template <const int DWORDLEN>
|
25
|
-
unsigned int HsiehHash(const void* pdata)
|
26
|
-
{
|
27
|
-
const unsigned short* data=(const unsigned short*)pdata;
|
28
|
-
unsigned hash=DWORDLEN<<2,tmp;
|
29
|
-
for(int i=0;i<DWORDLEN;++i)
|
30
|
-
{
|
31
|
-
hash += data[0];
|
32
|
-
tmp = (data[1]<<11)^hash;
|
33
|
-
hash = (hash<<16)^tmp;
|
34
|
-
data += 2;
|
35
|
-
hash += hash>>11;
|
36
|
-
}
|
37
|
-
hash^=hash<<3;hash+=hash>>5;
|
38
|
-
hash^=hash<<4;hash+=hash>>17;
|
39
|
-
hash^=hash<<25;hash+=hash>>6;
|
40
|
-
return(hash);
|
41
|
-
}
|
42
|
-
|
43
|
-
template <const int CELLSIZE>
|
44
|
-
struct btSparseSdf
|
45
|
-
{
|
46
|
-
//
|
47
|
-
// Inner types
|
48
|
-
//
|
49
|
-
struct IntFrac
|
50
|
-
{
|
51
|
-
int b;
|
52
|
-
int i;
|
53
|
-
btScalar f;
|
54
|
-
};
|
55
|
-
struct Cell
|
56
|
-
{
|
57
|
-
btScalar d[CELLSIZE+1][CELLSIZE+1][CELLSIZE+1];
|
58
|
-
int c[3];
|
59
|
-
int puid;
|
60
|
-
unsigned hash;
|
61
|
-
btCollisionShape* pclient;
|
62
|
-
Cell* next;
|
63
|
-
};
|
64
|
-
//
|
65
|
-
// Fields
|
66
|
-
//
|
67
|
-
|
68
|
-
btAlignedObjectArray<Cell*> cells;
|
69
|
-
btScalar voxelsz;
|
70
|
-
int puid;
|
71
|
-
int ncells;
|
72
|
-
int nprobes;
|
73
|
-
int nqueries;
|
74
|
-
|
75
|
-
//
|
76
|
-
// Methods
|
77
|
-
//
|
78
|
-
|
79
|
-
//
|
80
|
-
void Initialize(int hashsize=2383)
|
81
|
-
{
|
82
|
-
cells.resize(hashsize,0);
|
83
|
-
Reset();
|
84
|
-
}
|
85
|
-
//
|
86
|
-
void Reset()
|
87
|
-
{
|
88
|
-
for(int i=0,ni=cells.size();i<ni;++i)
|
89
|
-
{
|
90
|
-
Cell* pc=cells[i];
|
91
|
-
cells[i]=0;
|
92
|
-
while(pc)
|
93
|
-
{
|
94
|
-
Cell* pn=pc->next;
|
95
|
-
delete pc;
|
96
|
-
pc=pn;
|
97
|
-
}
|
98
|
-
}
|
99
|
-
voxelsz =0.25;
|
100
|
-
puid =0;
|
101
|
-
ncells =0;
|
102
|
-
nprobes =1;
|
103
|
-
nqueries =1;
|
104
|
-
}
|
105
|
-
//
|
106
|
-
void GarbageCollect(int lifetime=256)
|
107
|
-
{
|
108
|
-
const int life=puid-lifetime;
|
109
|
-
for(int i=0;i<cells.size();++i)
|
110
|
-
{
|
111
|
-
Cell*& root=cells[i];
|
112
|
-
Cell* pp=0;
|
113
|
-
Cell* pc=root;
|
114
|
-
while(pc)
|
115
|
-
{
|
116
|
-
Cell* pn=pc->next;
|
117
|
-
if(pc->puid<life)
|
118
|
-
{
|
119
|
-
if(pp) pp->next=pn; else root=pn;
|
120
|
-
delete pc;pc=pp;--ncells;
|
121
|
-
}
|
122
|
-
pp=pc;pc=pn;
|
123
|
-
}
|
124
|
-
}
|
125
|
-
//printf("GC[%d]: %d cells, PpQ: %f\r\n",puid,ncells,nprobes/(btScalar)nqueries);
|
126
|
-
nqueries=1;
|
127
|
-
nprobes=1;
|
128
|
-
++puid; ///@todo: Reset puid's when int range limit is reached */
|
129
|
-
/* else setup a priority list... */
|
130
|
-
}
|
131
|
-
//
|
132
|
-
int RemoveReferences(btCollisionShape* pcs)
|
133
|
-
{
|
134
|
-
int refcount=0;
|
135
|
-
for(int i=0;i<cells.size();++i)
|
136
|
-
{
|
137
|
-
Cell*& root=cells[i];
|
138
|
-
Cell* pp=0;
|
139
|
-
Cell* pc=root;
|
140
|
-
while(pc)
|
141
|
-
{
|
142
|
-
Cell* pn=pc->next;
|
143
|
-
if(pc->pclient==pcs)
|
144
|
-
{
|
145
|
-
if(pp) pp->next=pn; else root=pn;
|
146
|
-
delete pc;pc=pp;++refcount;
|
147
|
-
}
|
148
|
-
pp=pc;pc=pn;
|
149
|
-
}
|
150
|
-
}
|
151
|
-
return(refcount);
|
152
|
-
}
|
153
|
-
//
|
154
|
-
btScalar Evaluate( const btVector3& x,
|
155
|
-
btCollisionShape* shape,
|
156
|
-
btVector3& normal,
|
157
|
-
btScalar margin)
|
158
|
-
{
|
159
|
-
/* Lookup cell */
|
160
|
-
const btVector3 scx=x/voxelsz;
|
161
|
-
const IntFrac ix=Decompose(scx.x());
|
162
|
-
const IntFrac iy=Decompose(scx.y());
|
163
|
-
const IntFrac iz=Decompose(scx.z());
|
164
|
-
const unsigned h=Hash(ix.b,iy.b,iz.b,shape);
|
165
|
-
Cell*& root=cells[static_cast<int>(h%cells.size())];
|
166
|
-
Cell* c=root;
|
167
|
-
++nqueries;
|
168
|
-
while(c)
|
169
|
-
{
|
170
|
-
++nprobes;
|
171
|
-
if( (c->hash==h) &&
|
172
|
-
(c->c[0]==ix.b) &&
|
173
|
-
(c->c[1]==iy.b) &&
|
174
|
-
(c->c[2]==iz.b) &&
|
175
|
-
(c->pclient==shape))
|
176
|
-
{ break; }
|
177
|
-
else
|
178
|
-
{ c=c->next; }
|
179
|
-
}
|
180
|
-
if(!c)
|
181
|
-
{
|
182
|
-
++nprobes;
|
183
|
-
++ncells;
|
184
|
-
c=new Cell();
|
185
|
-
c->next=root;root=c;
|
186
|
-
c->pclient=shape;
|
187
|
-
c->hash=h;
|
188
|
-
c->c[0]=ix.b;c->c[1]=iy.b;c->c[2]=iz.b;
|
189
|
-
BuildCell(*c);
|
190
|
-
}
|
191
|
-
c->puid=puid;
|
192
|
-
/* Extract infos */
|
193
|
-
const int o[]={ ix.i,iy.i,iz.i};
|
194
|
-
const btScalar d[]={ c->d[o[0]+0][o[1]+0][o[2]+0],
|
195
|
-
c->d[o[0]+1][o[1]+0][o[2]+0],
|
196
|
-
c->d[o[0]+1][o[1]+1][o[2]+0],
|
197
|
-
c->d[o[0]+0][o[1]+1][o[2]+0],
|
198
|
-
c->d[o[0]+0][o[1]+0][o[2]+1],
|
199
|
-
c->d[o[0]+1][o[1]+0][o[2]+1],
|
200
|
-
c->d[o[0]+1][o[1]+1][o[2]+1],
|
201
|
-
c->d[o[0]+0][o[1]+1][o[2]+1]};
|
202
|
-
/* Normal */
|
203
|
-
#if 1
|
204
|
-
const btScalar gx[]={ d[1]-d[0],d[2]-d[3],
|
205
|
-
d[5]-d[4],d[6]-d[7]};
|
206
|
-
const btScalar gy[]={ d[3]-d[0],d[2]-d[1],
|
207
|
-
d[7]-d[4],d[6]-d[5]};
|
208
|
-
const btScalar gz[]={ d[4]-d[0],d[5]-d[1],
|
209
|
-
d[7]-d[3],d[6]-d[2]};
|
210
|
-
normal.setX(Lerp( Lerp(gx[0],gx[1],iy.f),
|
211
|
-
Lerp(gx[2],gx[3],iy.f),iz.f));
|
212
|
-
normal.setY(Lerp( Lerp(gy[0],gy[1],ix.f),
|
213
|
-
Lerp(gy[2],gy[3],ix.f),iz.f));
|
214
|
-
normal.setZ(Lerp( Lerp(gz[0],gz[1],ix.f),
|
215
|
-
Lerp(gz[2],gz[3],ix.f),iy.f));
|
216
|
-
normal = normal.normalized();
|
217
|
-
#else
|
218
|
-
normal = btVector3(d[1]-d[0],d[3]-d[0],d[4]-d[0]).normalized();
|
219
|
-
#endif
|
220
|
-
/* Distance */
|
221
|
-
const btScalar d0=Lerp(Lerp(d[0],d[1],ix.f),
|
222
|
-
Lerp(d[3],d[2],ix.f),iy.f);
|
223
|
-
const btScalar d1=Lerp(Lerp(d[4],d[5],ix.f),
|
224
|
-
Lerp(d[7],d[6],ix.f),iy.f);
|
225
|
-
return(Lerp(d0,d1,iz.f)-margin);
|
226
|
-
}
|
227
|
-
//
|
228
|
-
void BuildCell(Cell& c)
|
229
|
-
{
|
230
|
-
const btVector3 org=btVector3( (btScalar)c.c[0],
|
231
|
-
(btScalar)c.c[1],
|
232
|
-
(btScalar)c.c[2]) *
|
233
|
-
CELLSIZE*voxelsz;
|
234
|
-
for(int k=0;k<=CELLSIZE;++k)
|
235
|
-
{
|
236
|
-
const btScalar z=voxelsz*k+org.z();
|
237
|
-
for(int j=0;j<=CELLSIZE;++j)
|
238
|
-
{
|
239
|
-
const btScalar y=voxelsz*j+org.y();
|
240
|
-
for(int i=0;i<=CELLSIZE;++i)
|
241
|
-
{
|
242
|
-
const btScalar x=voxelsz*i+org.x();
|
243
|
-
c.d[i][j][k]=DistanceToShape( btVector3(x,y,z),
|
244
|
-
c.pclient);
|
245
|
-
}
|
246
|
-
}
|
247
|
-
}
|
248
|
-
}
|
249
|
-
//
|
250
|
-
static inline btScalar DistanceToShape(const btVector3& x,
|
251
|
-
btCollisionShape* shape)
|
252
|
-
{
|
253
|
-
btTransform unit;
|
254
|
-
unit.setIdentity();
|
255
|
-
if(shape->isConvex())
|
256
|
-
{
|
257
|
-
btGjkEpaSolver2::sResults res;
|
258
|
-
btConvexShape* csh=static_cast<btConvexShape*>(shape);
|
259
|
-
return(btGjkEpaSolver2::SignedDistance(x,0,csh,unit,res));
|
260
|
-
}
|
261
|
-
return(0);
|
262
|
-
}
|
263
|
-
//
|
264
|
-
static inline IntFrac Decompose(btScalar x)
|
265
|
-
{
|
266
|
-
/* That one need a lot of improvements... */
|
267
|
-
/* Remove test, faster floor... */
|
268
|
-
IntFrac r;
|
269
|
-
x/=CELLSIZE;
|
270
|
-
const int o=x<0?(int)(-x+1):0;
|
271
|
-
x+=o;r.b=(int)x;
|
272
|
-
const btScalar k=(x-r.b)*CELLSIZE;
|
273
|
-
r.i=(int)k;r.f=k-r.i;r.b-=o;
|
274
|
-
return(r);
|
275
|
-
}
|
276
|
-
//
|
277
|
-
static inline btScalar Lerp(btScalar a,btScalar b,btScalar t)
|
278
|
-
{
|
279
|
-
return(a+(b-a)*t);
|
280
|
-
}
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
//
|
285
|
-
static inline unsigned int Hash(int x,int y,int z,btCollisionShape* shape)
|
286
|
-
{
|
287
|
-
struct btS
|
288
|
-
{
|
289
|
-
int x,y,z;
|
290
|
-
void* p;
|
291
|
-
};
|
292
|
-
|
293
|
-
btS myset;
|
294
|
-
|
295
|
-
myset.x=x;myset.y=y;myset.z=z;myset.p=shape;
|
296
|
-
const void* ptr = &myset;
|
297
|
-
|
298
|
-
unsigned int result = HsiehHash<sizeof(btS)/4> (ptr);
|
299
|
-
|
300
|
-
|
301
|
-
return result;
|
302
|
-
}
|
303
|
-
};
|
304
|
-
|
305
|
-
|
306
|
-
#endif //BT_SPARSE_SDF_H
|
@@ -1,236 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/
|
3
|
-
|
4
|
-
This software is provided 'as-is', without any express or implied warranty.
|
5
|
-
In no event will the authors be held liable for any damages arising from the use of this software.
|
6
|
-
Permission is granted to anyone to use this software for any purpose,
|
7
|
-
including commercial applications, and to alter it and redistribute it freely,
|
8
|
-
subject to the following restrictions:
|
9
|
-
|
10
|
-
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.
|
11
|
-
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
12
|
-
3. This notice may not be removed or altered from any source distribution.
|
13
|
-
*/
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
#ifndef BT_AABB_UTIL2
|
18
|
-
#define BT_AABB_UTIL2
|
19
|
-
|
20
|
-
#include "btTransform.h"
|
21
|
-
#include "btVector3.h"
|
22
|
-
#include "btMinMax.h"
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
SIMD_FORCE_INLINE void AabbExpand (btVector3& aabbMin,
|
27
|
-
btVector3& aabbMax,
|
28
|
-
const btVector3& expansionMin,
|
29
|
-
const btVector3& expansionMax)
|
30
|
-
{
|
31
|
-
aabbMin = aabbMin + expansionMin;
|
32
|
-
aabbMax = aabbMax + expansionMax;
|
33
|
-
}
|
34
|
-
|
35
|
-
/// conservative test for overlap between two aabbs
|
36
|
-
SIMD_FORCE_INLINE bool TestPointAgainstAabb2(const btVector3 &aabbMin1, const btVector3 &aabbMax1,
|
37
|
-
const btVector3 &point)
|
38
|
-
{
|
39
|
-
bool overlap = true;
|
40
|
-
overlap = (aabbMin1.getX() > point.getX() || aabbMax1.getX() < point.getX()) ? false : overlap;
|
41
|
-
overlap = (aabbMin1.getZ() > point.getZ() || aabbMax1.getZ() < point.getZ()) ? false : overlap;
|
42
|
-
overlap = (aabbMin1.getY() > point.getY() || aabbMax1.getY() < point.getY()) ? false : overlap;
|
43
|
-
return overlap;
|
44
|
-
}
|
45
|
-
|
46
|
-
|
47
|
-
/// conservative test for overlap between two aabbs
|
48
|
-
SIMD_FORCE_INLINE bool TestAabbAgainstAabb2(const btVector3 &aabbMin1, const btVector3 &aabbMax1,
|
49
|
-
const btVector3 &aabbMin2, const btVector3 &aabbMax2)
|
50
|
-
{
|
51
|
-
bool overlap = true;
|
52
|
-
overlap = (aabbMin1.getX() > aabbMax2.getX() || aabbMax1.getX() < aabbMin2.getX()) ? false : overlap;
|
53
|
-
overlap = (aabbMin1.getZ() > aabbMax2.getZ() || aabbMax1.getZ() < aabbMin2.getZ()) ? false : overlap;
|
54
|
-
overlap = (aabbMin1.getY() > aabbMax2.getY() || aabbMax1.getY() < aabbMin2.getY()) ? false : overlap;
|
55
|
-
return overlap;
|
56
|
-
}
|
57
|
-
|
58
|
-
/// conservative test for overlap between triangle and aabb
|
59
|
-
SIMD_FORCE_INLINE bool TestTriangleAgainstAabb2(const btVector3 *vertices,
|
60
|
-
const btVector3 &aabbMin, const btVector3 &aabbMax)
|
61
|
-
{
|
62
|
-
const btVector3 &p1 = vertices[0];
|
63
|
-
const btVector3 &p2 = vertices[1];
|
64
|
-
const btVector3 &p3 = vertices[2];
|
65
|
-
|
66
|
-
if (btMin(btMin(p1[0], p2[0]), p3[0]) > aabbMax[0]) return false;
|
67
|
-
if (btMax(btMax(p1[0], p2[0]), p3[0]) < aabbMin[0]) return false;
|
68
|
-
|
69
|
-
if (btMin(btMin(p1[2], p2[2]), p3[2]) > aabbMax[2]) return false;
|
70
|
-
if (btMax(btMax(p1[2], p2[2]), p3[2]) < aabbMin[2]) return false;
|
71
|
-
|
72
|
-
if (btMin(btMin(p1[1], p2[1]), p3[1]) > aabbMax[1]) return false;
|
73
|
-
if (btMax(btMax(p1[1], p2[1]), p3[1]) < aabbMin[1]) return false;
|
74
|
-
return true;
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
SIMD_FORCE_INLINE int btOutcode(const btVector3& p,const btVector3& halfExtent)
|
79
|
-
{
|
80
|
-
return (p.getX() < -halfExtent.getX() ? 0x01 : 0x0) |
|
81
|
-
(p.getX() > halfExtent.getX() ? 0x08 : 0x0) |
|
82
|
-
(p.getY() < -halfExtent.getY() ? 0x02 : 0x0) |
|
83
|
-
(p.getY() > halfExtent.getY() ? 0x10 : 0x0) |
|
84
|
-
(p.getZ() < -halfExtent.getZ() ? 0x4 : 0x0) |
|
85
|
-
(p.getZ() > halfExtent.getZ() ? 0x20 : 0x0);
|
86
|
-
}
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
SIMD_FORCE_INLINE bool btRayAabb2(const btVector3& rayFrom,
|
91
|
-
const btVector3& rayInvDirection,
|
92
|
-
const unsigned int raySign[3],
|
93
|
-
const btVector3 bounds[2],
|
94
|
-
btScalar& tmin,
|
95
|
-
btScalar lambda_min,
|
96
|
-
btScalar lambda_max)
|
97
|
-
{
|
98
|
-
btScalar tmax, tymin, tymax, tzmin, tzmax;
|
99
|
-
tmin = (bounds[raySign[0]].getX() - rayFrom.getX()) * rayInvDirection.getX();
|
100
|
-
tmax = (bounds[1-raySign[0]].getX() - rayFrom.getX()) * rayInvDirection.getX();
|
101
|
-
tymin = (bounds[raySign[1]].getY() - rayFrom.getY()) * rayInvDirection.getY();
|
102
|
-
tymax = (bounds[1-raySign[1]].getY() - rayFrom.getY()) * rayInvDirection.getY();
|
103
|
-
|
104
|
-
if ( (tmin > tymax) || (tymin > tmax) )
|
105
|
-
return false;
|
106
|
-
|
107
|
-
if (tymin > tmin)
|
108
|
-
tmin = tymin;
|
109
|
-
|
110
|
-
if (tymax < tmax)
|
111
|
-
tmax = tymax;
|
112
|
-
|
113
|
-
tzmin = (bounds[raySign[2]].getZ() - rayFrom.getZ()) * rayInvDirection.getZ();
|
114
|
-
tzmax = (bounds[1-raySign[2]].getZ() - rayFrom.getZ()) * rayInvDirection.getZ();
|
115
|
-
|
116
|
-
if ( (tmin > tzmax) || (tzmin > tmax) )
|
117
|
-
return false;
|
118
|
-
if (tzmin > tmin)
|
119
|
-
tmin = tzmin;
|
120
|
-
if (tzmax < tmax)
|
121
|
-
tmax = tzmax;
|
122
|
-
return ( (tmin < lambda_max) && (tmax > lambda_min) );
|
123
|
-
}
|
124
|
-
|
125
|
-
SIMD_FORCE_INLINE bool btRayAabb(const btVector3& rayFrom,
|
126
|
-
const btVector3& rayTo,
|
127
|
-
const btVector3& aabbMin,
|
128
|
-
const btVector3& aabbMax,
|
129
|
-
btScalar& param, btVector3& normal)
|
130
|
-
{
|
131
|
-
btVector3 aabbHalfExtent = (aabbMax-aabbMin)* btScalar(0.5);
|
132
|
-
btVector3 aabbCenter = (aabbMax+aabbMin)* btScalar(0.5);
|
133
|
-
btVector3 source = rayFrom - aabbCenter;
|
134
|
-
btVector3 target = rayTo - aabbCenter;
|
135
|
-
int sourceOutcode = btOutcode(source,aabbHalfExtent);
|
136
|
-
int targetOutcode = btOutcode(target,aabbHalfExtent);
|
137
|
-
if ((sourceOutcode & targetOutcode) == 0x0)
|
138
|
-
{
|
139
|
-
btScalar lambda_enter = btScalar(0.0);
|
140
|
-
btScalar lambda_exit = param;
|
141
|
-
btVector3 r = target - source;
|
142
|
-
int i;
|
143
|
-
btScalar normSign = 1;
|
144
|
-
btVector3 hitNormal(0,0,0);
|
145
|
-
int bit=1;
|
146
|
-
|
147
|
-
for (int j=0;j<2;j++)
|
148
|
-
{
|
149
|
-
for (i = 0; i != 3; ++i)
|
150
|
-
{
|
151
|
-
if (sourceOutcode & bit)
|
152
|
-
{
|
153
|
-
btScalar lambda = (-source[i] - aabbHalfExtent[i]*normSign) / r[i];
|
154
|
-
if (lambda_enter <= lambda)
|
155
|
-
{
|
156
|
-
lambda_enter = lambda;
|
157
|
-
hitNormal.setValue(0,0,0);
|
158
|
-
hitNormal[i] = normSign;
|
159
|
-
}
|
160
|
-
}
|
161
|
-
else if (targetOutcode & bit)
|
162
|
-
{
|
163
|
-
btScalar lambda = (-source[i] - aabbHalfExtent[i]*normSign) / r[i];
|
164
|
-
btSetMin(lambda_exit, lambda);
|
165
|
-
}
|
166
|
-
bit<<=1;
|
167
|
-
}
|
168
|
-
normSign = btScalar(-1.);
|
169
|
-
}
|
170
|
-
if (lambda_enter <= lambda_exit)
|
171
|
-
{
|
172
|
-
param = lambda_enter;
|
173
|
-
normal = hitNormal;
|
174
|
-
return true;
|
175
|
-
}
|
176
|
-
}
|
177
|
-
return false;
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
SIMD_FORCE_INLINE void btTransformAabb(const btVector3& halfExtents, btScalar margin,const btTransform& t,btVector3& aabbMinOut,btVector3& aabbMaxOut)
|
183
|
-
{
|
184
|
-
btVector3 halfExtentsWithMargin = halfExtents+btVector3(margin,margin,margin);
|
185
|
-
btMatrix3x3 abs_b = t.getBasis().absolute();
|
186
|
-
btVector3 center = t.getOrigin();
|
187
|
-
btVector3 extent = btVector3(abs_b[0].dot(halfExtentsWithMargin),
|
188
|
-
abs_b[1].dot(halfExtentsWithMargin),
|
189
|
-
abs_b[2].dot(halfExtentsWithMargin));
|
190
|
-
aabbMinOut = center - extent;
|
191
|
-
aabbMaxOut = center + extent;
|
192
|
-
}
|
193
|
-
|
194
|
-
|
195
|
-
SIMD_FORCE_INLINE void btTransformAabb(const btVector3& localAabbMin,const btVector3& localAabbMax, btScalar margin,const btTransform& trans,btVector3& aabbMinOut,btVector3& aabbMaxOut)
|
196
|
-
{
|
197
|
-
btAssert(localAabbMin.getX() <= localAabbMax.getX());
|
198
|
-
btAssert(localAabbMin.getY() <= localAabbMax.getY());
|
199
|
-
btAssert(localAabbMin.getZ() <= localAabbMax.getZ());
|
200
|
-
btVector3 localHalfExtents = btScalar(0.5)*(localAabbMax-localAabbMin);
|
201
|
-
localHalfExtents+=btVector3(margin,margin,margin);
|
202
|
-
|
203
|
-
btVector3 localCenter = btScalar(0.5)*(localAabbMax+localAabbMin);
|
204
|
-
btMatrix3x3 abs_b = trans.getBasis().absolute();
|
205
|
-
btVector3 center = trans(localCenter);
|
206
|
-
btVector3 extent = btVector3(abs_b[0].dot(localHalfExtents),
|
207
|
-
abs_b[1].dot(localHalfExtents),
|
208
|
-
abs_b[2].dot(localHalfExtents));
|
209
|
-
aabbMinOut = center-extent;
|
210
|
-
aabbMaxOut = center+extent;
|
211
|
-
}
|
212
|
-
|
213
|
-
#define USE_BANCHLESS 1
|
214
|
-
#ifdef USE_BANCHLESS
|
215
|
-
//This block replaces the block below and uses no branches, and replaces the 8 bit return with a 32 bit return for improved performance (~3x on XBox 360)
|
216
|
-
SIMD_FORCE_INLINE unsigned testQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)
|
217
|
-
{
|
218
|
-
return static_cast<unsigned int>(btSelect((unsigned)((aabbMin1[0] <= aabbMax2[0]) & (aabbMax1[0] >= aabbMin2[0])
|
219
|
-
& (aabbMin1[2] <= aabbMax2[2]) & (aabbMax1[2] >= aabbMin2[2])
|
220
|
-
& (aabbMin1[1] <= aabbMax2[1]) & (aabbMax1[1] >= aabbMin2[1])),
|
221
|
-
1, 0));
|
222
|
-
}
|
223
|
-
#else
|
224
|
-
SIMD_FORCE_INLINE bool testQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)
|
225
|
-
{
|
226
|
-
bool overlap = true;
|
227
|
-
overlap = (aabbMin1[0] > aabbMax2[0] || aabbMax1[0] < aabbMin2[0]) ? false : overlap;
|
228
|
-
overlap = (aabbMin1[2] > aabbMax2[2] || aabbMax1[2] < aabbMin2[2]) ? false : overlap;
|
229
|
-
overlap = (aabbMin1[1] > aabbMax2[1] || aabbMax1[1] < aabbMin2[1]) ? false : overlap;
|
230
|
-
return overlap;
|
231
|
-
}
|
232
|
-
#endif //USE_BANCHLESS
|
233
|
-
|
234
|
-
#endif //BT_AABB_UTIL2
|
235
|
-
|
236
|
-
|
@@ -1,107 +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_ALIGNED_ALLOCATOR
|
17
|
-
#define BT_ALIGNED_ALLOCATOR
|
18
|
-
|
19
|
-
///we probably replace this with our own aligned memory allocator
|
20
|
-
///so we replace _aligned_malloc and _aligned_free with our own
|
21
|
-
///that is better portable and more predictable
|
22
|
-
|
23
|
-
#include "btScalar.h"
|
24
|
-
//#define BT_DEBUG_MEMORY_ALLOCATIONS 1
|
25
|
-
#ifdef BT_DEBUG_MEMORY_ALLOCATIONS
|
26
|
-
|
27
|
-
#define btAlignedAlloc(a,b) \
|
28
|
-
btAlignedAllocInternal(a,b,__LINE__,__FILE__)
|
29
|
-
|
30
|
-
#define btAlignedFree(ptr) \
|
31
|
-
btAlignedFreeInternal(ptr,__LINE__,__FILE__)
|
32
|
-
|
33
|
-
void* btAlignedAllocInternal (size_t size, int alignment,int line,char* filename);
|
34
|
-
|
35
|
-
void btAlignedFreeInternal (void* ptr,int line,char* filename);
|
36
|
-
|
37
|
-
#else
|
38
|
-
void* btAlignedAllocInternal (size_t size, int alignment);
|
39
|
-
void btAlignedFreeInternal (void* ptr);
|
40
|
-
|
41
|
-
#define btAlignedAlloc(size,alignment) btAlignedAllocInternal(size,alignment)
|
42
|
-
#define btAlignedFree(ptr) btAlignedFreeInternal(ptr)
|
43
|
-
|
44
|
-
#endif
|
45
|
-
typedef int size_type;
|
46
|
-
|
47
|
-
typedef void *(btAlignedAllocFunc)(size_t size, int alignment);
|
48
|
-
typedef void (btAlignedFreeFunc)(void *memblock);
|
49
|
-
typedef void *(btAllocFunc)(size_t size);
|
50
|
-
typedef void (btFreeFunc)(void *memblock);
|
51
|
-
|
52
|
-
///The developer can let all Bullet memory allocations go through a custom memory allocator, using btAlignedAllocSetCustom
|
53
|
-
void btAlignedAllocSetCustom(btAllocFunc *allocFunc, btFreeFunc *freeFunc);
|
54
|
-
///If the developer has already an custom aligned allocator, then btAlignedAllocSetCustomAligned can be used. The default aligned allocator pre-allocates extra memory using the non-aligned allocator, and instruments it.
|
55
|
-
void btAlignedAllocSetCustomAligned(btAlignedAllocFunc *allocFunc, btAlignedFreeFunc *freeFunc);
|
56
|
-
|
57
|
-
|
58
|
-
///The btAlignedAllocator is a portable class for aligned memory allocations.
|
59
|
-
///Default implementations for unaligned and aligned allocations can be overridden by a custom allocator using btAlignedAllocSetCustom and btAlignedAllocSetCustomAligned.
|
60
|
-
template < typename T , unsigned Alignment >
|
61
|
-
class btAlignedAllocator {
|
62
|
-
|
63
|
-
typedef btAlignedAllocator< T , Alignment > self_type;
|
64
|
-
|
65
|
-
public:
|
66
|
-
|
67
|
-
//just going down a list:
|
68
|
-
btAlignedAllocator() {}
|
69
|
-
/*
|
70
|
-
btAlignedAllocator( const self_type & ) {}
|
71
|
-
*/
|
72
|
-
|
73
|
-
template < typename Other >
|
74
|
-
btAlignedAllocator( const btAlignedAllocator< Other , Alignment > & ) {}
|
75
|
-
|
76
|
-
typedef const T* const_pointer;
|
77
|
-
typedef const T& const_reference;
|
78
|
-
typedef T* pointer;
|
79
|
-
typedef T& reference;
|
80
|
-
typedef T value_type;
|
81
|
-
|
82
|
-
pointer address ( reference ref ) const { return &ref; }
|
83
|
-
const_pointer address ( const_reference ref ) const { return &ref; }
|
84
|
-
pointer allocate ( size_type n , const_pointer * hint = 0 ) {
|
85
|
-
(void)hint;
|
86
|
-
return reinterpret_cast< pointer >(btAlignedAlloc( sizeof(value_type) * n , Alignment ));
|
87
|
-
}
|
88
|
-
void construct ( pointer ptr , const value_type & value ) { new (ptr) value_type( value ); }
|
89
|
-
void deallocate( pointer ptr ) {
|
90
|
-
btAlignedFree( reinterpret_cast< void * >( ptr ) );
|
91
|
-
}
|
92
|
-
void destroy ( pointer ptr ) { ptr->~value_type(); }
|
93
|
-
|
94
|
-
|
95
|
-
template < typename O > struct rebind {
|
96
|
-
typedef btAlignedAllocator< O , Alignment > other;
|
97
|
-
};
|
98
|
-
template < typename O >
|
99
|
-
self_type & operator=( const btAlignedAllocator< O , Alignment > & ) { return *this; }
|
100
|
-
|
101
|
-
friend bool operator==( const self_type & , const self_type & ) { return true; }
|
102
|
-
};
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
#endif //BT_ALIGNED_ALLOCATOR
|
107
|
-
|