Commit Graph

833 Commits

Author SHA1 Message Date
erwin.coumans@gmail.com
5e372d6ac5 fix compile errors 2013-10-21 23:33:01 +00:00
erwin.coumans@gmail.com
1ca0493dc4 Build full A matrix and b vector for a MLCP solver interface, to explore Lemke, Dantzig, Newton and other MLCP solvers. The A matrix contains sparsity information.
Added a PGS solver that uses the sparsity of the A matrix, just for testing (the equivalent sequential impulse solver is much faster, not having to allocate the big matrices)
2013-10-20 17:38:14 +00:00
erwin.coumans@gmail.com
d4640227ce add option to disable btMultiBody self-collision (for the entire hierarchy) or to disable parent-child collision for jointed links. 2013-10-08 00:50:40 +00:00
erwin.coumans@gmail.com
34d975143e expose maximum applied impulse for btMultiBody, introduced to reduce/avoid 'exploding' simulations
use btScalar instead of float, to enable double precision build, fix for Issue 744
2013-10-06 17:13:08 +00:00
erwin.coumans@gmail.com
488dd44835 Added btMultiBodyPoint2Point, it can be used between btMultiBody vs btMultiBody or btMultiBody vs btRigidBody
Allow picking of btMultiBody, using a btMultiBodyPoint2Point constraint, with limited strength to avoid adding too much energy to the system (= blowup)
Add btMultiBodyJointMotor, it can be used in combination with joint limit (just add the joint limit after the motor, to avoid jitter)
2013-10-05 01:46:32 +00:00
erwin.coumans@gmail.com
2fb686b937 change btMultiBody to allow removal/changing of links
(still not easy to modify the link structure of a btMultiBody -> You have to manually re-link parents, copying links around etc)
2013-10-03 05:13:41 +00:00
erwin.coumans@gmail.com
88b8ae552b add a btFixedConstraint with toggle between btGeneric6DofConsraint and btFixedConstraint in VoronoiFractureDemo 2013-10-02 21:50:50 +00:00
erwin.coumans
75f17509cc Add a virtual createConstraintRows method, to easier experiment with different kinds of btMultiBodyConstraint 2013-10-02 21:38:40 +00:00
erwin.coumans
c2bece5280 Enable btMultiBodyJointLimitConstraint, seems to be working for the prismatic joint
Fix case sensitive issue, thanks to Martin Felis
Fix crash/bug in btMultiBodyConstraint computation
2013-10-02 20:14:48 +00:00
erwin.coumans
36cfbd47a6 preparation for joint limit constraint for Featherstone btMultiBody 2013-10-02 06:25:20 +00:00
erwin.coumans
d8b6a02a7a Fix some crashes in FeatherstoneMultiBodyDemo, when using a fixed base
Create two btMultiBody, one fixed and one free base
Preparation towards btMultiBodyConstraint
2013-10-02 03:07:52 +00:00
erwin.coumans
f02dd51597 Added a first version of a Featherstone multi body implementation.
The original version was written by Stephen Thompson.
I replaced Eigen math by Bullet LinearMath, and added a dedicated 6x6 matrix solver. 
Also I integrated support for collisions/contact constraints between btMultiBody and btRigidBody, and de-activation support.
See Demos/FeatherstoneMultiBodyDemo/Win32FeatherstoneMultiBodyDemo.cpp for example usage.
There is currently only support for contact constraints for btMultiBody. 
Next on the list will be adding support for joint limit constraint for btMultiBody. 
The implementation is still experimental/untested, the quality will improve in upcoming Bullet releases.
2013-10-01 22:50:31 +00:00
erwin.coumans
dece911679 removed Particles OpenCL demo, all OpenCL work is moved to Bullet 3.x see
http://github.com/erwincoumans/bullet3
Fixes Issue 741
2013-10-01 17:28:56 +00:00
erwin.coumans
1aac33f6b6 refactor constraint serialization, so that double precision is maintained,
changes are backwards compatible (btBulletWorldImporter can load old .bullet files)
but not forwards compatible (constraints in new .bullet files are ignored/unrecognized by old Bullet SDK)
This commit is for Issue 734. Some more work needs to be done for btGImpactMeshShapeDoubleData and thus btStridingMeshInterfaceDoubleData and btMeshPartDoubleData
2013-09-14 06:08:50 +00:00
erwin.coumans
e94a2137b0 minor update manual
fix vehicle demo (heightfield is broken, when using very large scaling factor)
add btConeShape serialization, see Issue 725
add btGearConstraint get/set, see Issue 685 and Issue 671
2013-09-13 16:34:39 +00:00
erwin.coumans
fa2276f1ca add option for slightly more accurate, and slightly slower algorithm for ray versus convex, used in btCollisionWorld::rayTest.
rayResult.m_flags |= btTriangleRaycastCallback::kF_UseGjkConvexRaytest;
See Demos/RaytestDemo/RaytestDemo.cpp for usage
This fixes issue 146, longest outstanding from 2008.
2013-09-12 20:25:06 +00:00
erwin.coumans
1685729b80 Show how to use the btBroadphaseInterface::aabbTest, it collects all objects that overlap with a given bounding box
This fixes old Issue 114
Removed 2 warnings
2013-09-11 05:52:19 +00:00
erwin.coumans
7195b54d13 Fix Issue 712, related to NVIDIA CUDA check in CMakeLists.txt
Enable btGImpact raycast optimization, thanks to C0DEFACE, see Issue 664
Cull triangle/AABB for concave/heightfield shapes, thanks to Danny Chapman
fix btGetCpuCapabilities, thanks to Ian Ollman! See https://code.google.com/p/bullet/issues/detail?id=738
2013-09-10 23:09:24 +00:00
erwin.coumans
7633dc8b13 use __int64 for 64bit uint64_t for 64bit Visual Studio
See https://code.google.com/p/bullet/issues/detail?id=717
allow parallel constraint solver in double precision
See https://code.google.com/p/bullet/issues/detail?id=728
2013-09-10 21:26:19 +00:00
erwin.coumans
c160bfe74c applied Character controller patch #20 from Issue 198
See https://code.google.com/p/bullet/issues/detail?id=198
2013-09-10 20:40:42 +00:00
erwin.coumans
d50be40f8e Fix Issue 2644, compile error due to use of removed stack alloc 2013-09-10 20:15:52 +00:00
erwin.coumans@gmail.com
2bb26cbb7d Enable btHeightfieldShape in VehicleDemo, so it is tested (using heightfield128x128)
(converted raw data to .cpp so it doesn't need to be loaded from disk)
Some optimizations for btHeightfieldShape, thanks to Danny Chapman
 Quick check on AABB (was not done) and reduce calls to 'getVertex'
2013-09-10 00:57:00 +00:00
erwin.coumans@gmail.com
dfaed4b258 fix a line in unused testing code (USE_GJK should be defined) 2013-08-30 18:43:10 +00:00
erwin.coumans@gmail.com
542c53fb30 Don't pass along unused btStackAlloc everywhere. The API change might user code (derived classes with the old virtual method are not called anymore) 2013-05-08 22:45:35 +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
74c028ebae remove some quicksort test that breaks the build under MSVC 2005 SP1
Fixes Issue 680 together with this commit:
https://code.google.com/p/bullet/source/detail?r=2632
2012-12-20 22:47:54 +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
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
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
erwin.coumans
595dab2337 allow the Bullet world importer to save a copy with swapped endianness
See http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8191
2012-10-31 07:25:54 +00:00
erwin.coumans
a32efa48c1 add BulletQuickstart.pdf and a reference to it from the old Bullet_User_Manual.pdf
add HelloWorld demo to premake
2012-10-08 19:01:47 +00:00
erwin.coumans
30b88f2f8e more work on the new Bullet manual/quickstart guide, and cross reference to HelloWorld.cpp source code 2012-10-06 20:56:44 +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
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
4442a826ed add commandline arguments to serialize demo for xml export and Bullet import file name
update AntTweakBar version in CDTestFramework
add btCompoundShape support in BulletXmlWorldImporter (this importer is still premature/work-in-progress)
2012-09-26 19:47:18 +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
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
19583868a9 fix AllBulletDemosOSX, 16-byte alignment and Xcode project 2012-09-17 17:02:33 +00:00
erwin.coumans
a76e38eff0 fix link order so that the premake build works under Linux 2012-09-17 16:55:47 +00:00
erwin.coumans
90643bec75 fix problem with btCylinderShape creation in RollingFrictionDemo 2012-09-16 19:26:27 +00:00
erwin.coumans
4934ce61fa tweak rolling friction in RaytestDemo 2012-09-16 17:23:39 +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
26c713423f add RollingFrictionDemo 2012-09-15 07:03:23 +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
erwin.coumans
54744b6ab9 added gyroscopic force option for btRigidBody, body->setFlags(BT_ENABLE_GYROPSCOPIC_FORCE);
Note that it can easily introduce instability at regular (60Hertz) simulation steps so it is generally best to not use the option.
If needed, use a very small internal step, such as 1000 Hertz (world->stepSimulation(dt,100,1./1000.f); or stepSimulation(1./1000.,0);
2012-09-14 21:39:48 +00:00
erwin.coumans
3e9f35c0fd Add btGearConstraint, with a demo in Bullet/Demos/ConstraintDemo
Thanks to Dimitris Papavasiliou for the idea.
2012-09-13 22:40:39 +00:00
erwin.coumans
47cae15fe5 add missing file in AllBulletDemosOSX
fix RaytestDemo CMakeLists.txt
2012-09-13 00:14:30 +00:00