Commit Graph
1722 Commits
Author SHA1 Message Date
erwin coumans dc1984713a add option for btDbvtBroadphase (comparison) 2013-04-20 23:59:00 -07:00
erwin coumans 9ecd898c34 re-introduce Bullet 2.x solver, in Bullet3Dynamics/ConstraintSolver/b3PgsJacobiSolver.*
move b3Contact and b3RigidBody
2013-04-18 23:28:13 -07:00
erwin coumans 626f0cf1e3 bt->b3 2013-04-17 17:52:51 -07:00
erwin coumans 3cb80ad1a3 more bt->b3* 2013-04-16 17:13:38 -07:00
erwin coumans e646754228 more bt* to b3* 2013-04-16 17:08:59 -07:00
erwin coumans 4a93c2e704 x() -> x or getX() or [0]
y() -> y or getY() or [1]
z() -> z or getZ() or [2]
w() -> w or getW() or [3]

make sphere-convex and sphere-compound collision work (still issues remaining)
2013-04-03 18:27:36 -07:00
erwin.coumans 33688fc011 removed name from source code 2013-04-02 18:33:00 +00:00
erwin.coumans@gmail.com e8c2475c95 Added a gCompoundChildShapePairCallback to filter (enable/disable) child shape collisions for a btCompoundShape.
Thanks to Rich McDaniel for the patch.
See MyCompoundChildShapeCallback in Demos/ConvexDecompositionDemo/ConvexDecompositionDemo.cpp for usage.
2013-04-02 02:01:43 +00:00
erwin.coumans@gmail.com 1f4f8c7e05 Workaround for sticky convex collisions when using GJK/EPA in combination with very small collision margins.
In some degenerate cases the contact normal is pointing the wrong direction
so fix it now (until we can deal with all degenerate cases in GJK and EPA)
contact normals need to point from B to A in all cases, so we can simply check if the contact normal really points from B to A
We like to use a dot product of the normal against the difference of the centroids, 
once the centroid is available in the API
until then we use the center of the aabb to approximate the centroid
2013-04-02 00:32:18 +00:00
erwin coumans 9c0ca25cf6 add preparation for btGpuJacobiSolver 2013-03-25 17:13:53 -07:00
erwin coumans 39884e4665 more compile fixes 2013-03-20 00:33:21 -07:00
erwin coumans d8a3732306 fix demo/gpudemo build 2013-03-13 13:22:56 -07:00
erwin coumans 7c0824665c add Bullet 2.x files (renamed/split LinearMath into BulletCommon and BulletGeometry 2013-03-13 00:01:55 -07:00
erwin.coumans 976cd0028a Add a missing header file btCollisionObjectWrapper.h
Thanks to  Alexander Meissner

Fixes Issue 684
2013-01-03 18:51:20 +00:00
erwin.coumans 02a22f6329 Avoid using SSE in API when BT_USE_SSE_IN_API is not defined
Fixes Issue 683.
2012-12-20 22:09:59 +00:00
erwin.coumans 0c555a5afe just use 16-byte aligned data for solverbody, not 64byte
fixes Issue 659
2012-12-17 21:29:20 +00:00
erwin.coumans 7e14e79da0 Fix Issue 680, compilation error using Visual Studio 2005, service pack 1, quicksort compare function needs to be in a class.
Toggle between GJK and SAT (initializePolyhedralFeatures) in convexDecomposition at easch restart of the demo (spacebar)
2012-12-17 20:38:31 +00:00
erwin.coumans c4548ec746 Add a helper method that creates a btCompoundShape from a btGimpactMeshShape, for more robust collision detection.
The idea is to create tetrahedra from each surface triangle, by moving its centroid inwards along the collision normal using depth.
If the centroid hits an internal triangle, it will stop there.

The commit also includes part of the gimpact raycast performance improvement, except for the actual btCollisionWorld part
(that file was out-of-date and needs manual patching)
2012-12-14 23:14:09 +00:00
erwin.coumans 27fd8ea0d7 make it more obvious that btBvhTriangleMeshShape cannot be used for moving objects. 2012-12-14 20:31:03 +00:00
erwin.coumans 1d4a5d950d Usually m_contactNormal2 == -m_contactNormal1, but not always, so
use a separate contactNormal1/contactNormal2 for each body in btSolverConstraint.

Thanks to Richard McDaniel for the patch.
2012-12-12 23:21:51 +00:00
erwin.coumans 7c610ec045 use unsigned int indices in btGImpactMeshShape
See Issue 663
2012-12-07 19:20:06 +00:00
erwin.coumans 17ca9eb7e7 Fix compile error when defining DEBUG, include memset header
See Issue 678, thanks to Max for the report!
2012-12-07 18:21:14 +00:00
erwin.coumans d54423f9c0 Fix compile error in Visual Studio 2005 build: only enable SSE/SIMD intrinsics for btVector3 for Visual Studio 2008 and higher 2012-12-07 18:16:04 +00:00
erwin.coumans f5704d5981 Fix issue with btQuaternion::slerp, thanks to Martin Heistermann.
Fixes Issue 665
2012-11-25 17:19:17 +00:00
erwin.coumans 6964612e8c Remove #end in btScalar.h
Fixes Issue 674
2012-11-24 22:14:13 +00:00
erwin.coumans 9eddd42347 fix win32 (non-glut) cmake build.
add partId/index to btCollisionObjectWrapper to be able to recognize recursive shape indices (a btCompoundShape with a btGimpactShape child shape etc)
2012-11-10 01:42:35 +00:00
rponom@gmail.com f35621eb01 Bug in ConeTwist constraint with tight limits fixed
ConeTwist constructor for one-body constraint modified
2012-11-09 19:22:05 +00:00
erwin.coumans ff38230704 use the right m_bvhAabbMax/m_bvhAabbMin to adjust quantization 2012-10-11 16:36:16 +00:00
erwin.coumans fe3cfe56b6 fix unaligned data issue, see Issue 657 2012-10-10 06:35:32 +00:00
erwin.coumans 79989a8d3d Force spuNodeCallback to be 16-byte aligned, so that we can use SIMD. Related to Issue 657
Recompute the quantization values in case the maximum/minimum extends roundtrip using quantize/unQuantize are out-of-range
(alternatively, pass in a larger quantizationMargin)
2012-10-10 04:21:36 +00:00
erwin.coumans 48e932c8d6 fix build 2012-10-05 22:12:41 +00:00
erwin.coumans eaabf1a2c8 Expose btManifoldResult::calculateCombinedRestitution and btManifoldResult::calculateCombinedFriction as static member functions, so it can be reused for speculative contacts
Add speculative contact restitution, but disabled by default, not well tested (btDiscreteDynamicsWorld::setApplySpeculativeContactRestitution)
Add --with-double-precision option to premake build system
2012-10-05 21:15:11 +00:00
erwin.coumans 6be2689f01 add joint feedback (applied force and applied torque for a constraint) 2012-10-05 05:37:12 +00:00
erwin.coumans 394bb103f0 Fix src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp
See Issue 643, thanks to Laurent at liquiddragon for the patch.
Fix warning, See Issue 655
2012-10-04 20:32:04 +00:00
erwin.coumans 74db95d827 disable sphere-box again, it seems broken
http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8456

fix some warnings
2012-10-02 02:26:37 +00:00
erwin.coumans cfb609f9d1 tweak CcdPhysicsDemo
remove wrong cp.m_lateralFrictionInitialized = false;
See http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=28851#p28851
2012-09-29 01:52:27 +00:00
erwin.coumans 79a792913d Add the option BUILD_MULTITHREADING to CMAKE, only enabled on APPLE and MSVC platforms. This controls multi-core (BulletMultiThreaded), MiniCL, DX11 and OpenCL acceleration.
On other platforms (Linux) it might work, but it is unsupported.
Fix some warnings in btBulletWorldImprter
2012-09-28 19:32:30 +00:00
erwin.coumans 60bf599246 perform GrahamScanConvexHull2D around an arbitrary oriented 2D plane in 3D, to fix some convex hull face merging problems
add compound shape support to BulletXmlWorldImporter and fix some compile issue under Debian (hopefully)
object picking change in the demos: create a ball-socket picking constraint when holding shift while mouse dragging, otherwise a fixed (6dof) constraint
add assert in constraint solver, when both objects have their inertia tensor rows set to zero
btPolyhedralContactClipping: add edge-edge contact point in  findSeparatingAxis (similar to the default GJK case)
2012-09-28 07:14:48 +00:00
erwin.coumans 837e5cb5e0 serialize rolling friction 2012-09-27 16:20:29 +00:00
erwin.coumans 60c1b1918a fix bug for convex-convex polyhedral contact clipping, where the origin of the object is not located inside the convex hull of the vertices. 2012-09-23 18:35:19 +00:00
erwin.coumans 182c3034de fixes in btBulletXmlWorldImporter, and add premake4 support for the related demo 2012-09-22 05:27:35 +00:00
erwin.coumans 6f60a388c6 add missing Demos/BulletXmlImportDemo
serialize DynamicsWorldInfo
2012-09-22 02:06:09 +00:00
erwin.coumans f2c9cdfb11 add m_rollingFriction to serialization structures
add btContactSolverInfo and gravity to serialization structures
(actual serialization code will follow soon)
2012-09-21 23:37:24 +00:00
erwin.coumans 214579ec60 Allow btBulletWorldImporter to convert/export a .bullet file to XML
Add first version of btBulletXmlWorldImporter, still incomplete but it can read some files
Fix false assert in btSequentialImpulseConstraintSolver
2012-09-21 22:47:11 +00:00
erwin.coumans 7494463be8 reset the companion Id back to -1, because of a bug related to kinematic objects
Thanks to Francois for the report. See Issue 652
2012-09-20 11:32:27 +00:00
erwin.coumans 5bba00dea4 improve control over rolling friction, use the same m_rollingFriction for both linear factor and absolute clamping value. 2012-09-20 04:18:29 +00:00
erwin.coumans 59a29b1859 fix kinematic objects, see Issue 652
add m_rollingFriction to btRigidBody::btRigidBodyConstructionInfo
2012-09-20 03:32:52 +00:00
erwin.coumans 8be5172df5 fix issue in the recent SSE implementation of setInterpolate3
align class
2012-09-17 16:03:47 +00:00
erwin.coumans 22fb7d5c1e improve rolling friction using anisotropic direction, to avoid resting in an instable position
(for implicit capsule, cylinder and cone shape)
See Bullet/Demos/RollingFrictionDemo for an example
2012-09-16 17:01:25 +00:00
erwin.coumans 7eebb79ced implemented rolling friction, using a contact constraint. Useful to get rolling spheres to rest, even on a slightly sloped plane.
See http://www.youtube.com/watch?v=RV7sBAsKu4M and Bullet/Demos/RollingFrictionDemo
Fixes in FractureDemo (mouse picking constraint needs to be removed, otherwise constraint solver crashes/asserts)
2012-09-15 06:52:17 +00:00