Commit Graph

558 Commits

Author SHA1 Message Date
Erwin Coumans
1fccfc4e28 fix btInMemorySerializer 2014-09-16 20:14:31 -07:00
Erwin Coumans
ad251da294 disable btInMemorySerializer by default 2014-09-16 19:56:26 -07:00
Erwin Coumans
f9eb7c68c5 add btInMemorySerializer (experiments, allows for in-memory deep copy of worlds, bypassing the BulletFileLoader mechanism)
add btCollisionWorldImporter that can load a .bullet file, or use the btInMemorySerializer for deep-copy
2014-09-16 19:18:10 -07:00
erwincoumans
3240d790e4 Update btSerializer.h
fix compile error in LinearMath/btSerializer.h
2014-09-16 09:32:26 -07:00
erwincoumans
89aeae9102 Add serialization support for btGeneric6DofSpring2Constraint
Attempt to re-order serialization data so it can be serialized in-memory (for deep copy)
2014-09-16 09:22:35 -07:00
Erwin Coumans
a26f9c1871 premake: use *.cpp insteadl of **.cpp 2014-09-05 11:22:25 -07:00
Erwin Coumans
af5883c6e8 remove a lot of warnings (more todo in demos and serialization code) 2014-08-22 10:29:05 -07:00
Erwin Coumans
37aa4dc4f8 fix more warnings, implement missing X11 function for dynamic loading 2014-08-21 17:27:14 -07:00
Erwin Coumans
143c2da254 premake4: don't use recursive file globbing in LinearMath and BulletCollision 2014-08-21 14:03:15 -07:00
Erwin Coumans
4af9c5a4c9 remove some warnings 2014-08-21 13:32:32 -07:00
Erwin Coumans
7b28e86c7b add improved btGeneric6DofSpring2Constraint, thanks to Puhr Gabor and Tamas Umenhoffer!
improved the new demo testbed (work-in-progress)
add basic Lua demo, import URDF test, STL import, obj import
2014-08-20 16:28:16 -07:00
Haydn Trigg
3d944782e9 Update btQuickprof.cpp
removed inline declaration from get time seconds function definition
2014-08-01 07:25:31 +09:30
Haydn Trigg
6ff7a6d48b Update btQuickprof.cpp 2014-07-26 00:44:16 +09:30
Haydn Trigg
4a43eab4dd Update btQuickprof.h 2014-07-26 00:44:15 +09:30
Gregory Jaegy
f2e54ea0a5 fix crash on CPU not having AVX support 2014-06-20 09:58:31 +02:00
Erwin Coumans
1e2b907562 update version to 2.83 for an intermediate release (2014 will be a transition year to Bullet 3.x) 2014-05-16 16:20:07 -07:00
Jan-Philip Stecker
6f3abe414c fix gcc warning message in public header for c++11
- missing whitespace lead to msgs like:
include/bullet/LinearMath/btScalar.h💯41:
warning: invalid suffix on literal; C++11 requires a space between
literal and string macro [-Wliteral-suffix]

- this error was visible in projects using bullet when using c++11 mode
2014-05-14 19:44:23 +02:00
Erwin Coumans
e279aed08f re-enable the fix for broken friction in Clang (got accidently undone in a recent commit)
fix OSX build
2014-05-03 10:11:49 -07:00
erwincoumans
0b6d1af1d4 Only enable SSE4 for Visual Studio 2012 or later (_MSC_FULL_VER >= 170050727), it breaks the build for Visual Studio 2010
Add additional constructor for btMultiBodyJointMotor
2014-05-01 22:23:37 -07:00
Erwin Coumans
0e1b90d708 Added SSE4/FMA optimized constraint row solver implementation for btSequentialImpulseConstraintSolver,
thanks to Vladimir Bondarev (https://github.com/VladimirBondarev/bullet3/tree/c25d)
2014-05-01 17:13:50 -07:00
Erwin Coumans
8eb1835415 fix a potential bug in CProfileNode destructor, if the SDK is included/used multiple times. 2014-04-28 11:24:29 -07:00
erwincoumans
31998c8e7d minor issues (don't use \n in B3_PROFILE, and don't report timing inaccuracy in console 2014-01-29 15:25:36 -08:00
Erwin Coumans
6142bdca0a brDefaultMotionState::getWorldTransform was wrong, in case of a non-identity centerOfMassOffset.
Thanks to Mathias for the report/fix.
2014-01-16 18:47:03 -08:00
erwin coumans
69e5454d18 Add the old Bullet 2.x obsolete demos, and CMake buildsystem files, and gradually move them to newer Bullet 3.x structure
Use statically linked freeglut, instead of dynamic glut for the obsolete Bullet 2.x demos
Add the 'reset' method to b3GpuDynamicsWorld, and use it in the BasicGpuDemo (pretty slow in debug mode, use release mode)
Don't crash in btCollisionWorld, if there is no collision dispatcher
2013-12-19 12:40:59 -08:00
Erwin Coumans
f06312c632 remove most clutter (todo) 2013-12-06 15:29:13 -07:00
erwin.coumans@gmail.com
5910b42d8d fix SIMD_2_PI macro, see Issue 773 2013-11-26 17:15:05 +00:00
erwin.coumans
bda1fb7dd2 fix 64bit iOS,see also Issue 739 2013-11-18 22:17:00 +00:00
erwin.coumans@gmail.com
886650a038 fix 'unused' warning. Fixes Issue 770 2013-11-17 20:13:50 +00:00
erwin.coumans@gmail.com
644d01d231 added the btNNCGConstraintSolver, based on the paper "Nonsmooth Nonlinear Conjugate Gradient Method for interactive
contact force problems". The solver needs a lot of iterations, before the quality goes up (~ 1000)
Thanks to Gabor PUHR for the contribution!
Improved the btLemkeSolver.
Remove the sparse optimizations from the btMatrixX.h, replace it with explicit call to rowComputeNonZeroElements (only used in the btSolveProjectedGaussSeidel), it was likely slowing things down, without being useful.
Re-enable SIMD in the solver (was accidently disabled in Bullet 2.82 release)
2013-10-31 06:17:08 +00:00
erwin.coumans@gmail.com
13936eb9a5 use square epsilon in btVector3::fuzzyZero (length2) 2013-10-29 22:53:01 +00:00
erwin.coumans
1a2c3c0ee9 Added a Lemke MLCP solver, extracted from the MBSim project, and re-licensed under the zlib license
with permission of the original author. 
The Lemke implementation is not fully working yet:
1) we need to convert the lo-high LCP problem into a problem without the lo/high
2) we need to sort out the remaining instabilities, and report a failure if the max loopcount is reached etc.
We replaced the fmatvec library with our own LinearMath/btMatrixX.h, and STL std::vector with btAlignedObjectArray

Removed some warnings/potential issues: use fuzzyZero instead of isZero, and some warnings, 
related to this issue 756
2013-10-26 18:45:25 +00:00
erwin.coumans
1503c806bd fix Mac OSX build when using GNU++11 C++ language standard, make this the default in premake under OSX for easier testing 2013-10-22 23:08:43 +00:00
erwin.coumans
75260cd0d7 fix iOS compilation when the C++ Language Dialect is set to GNU++11 2013-10-22 19:13:24 +00:00
erwin.coumans
4169c52b2a use __ARM_NEON__ preprocessor check instead of __armv7__ 2013-10-22 19:01:21 +00:00
erwin.coumans@gmail.com
cf7f5436e4 apply CMake patch in Issue 748
thanks to Julien Schueller for the contribution!
2013-10-22 18:34:17 +00:00
erwin.coumans@gmail.com
23f612bbb5 fix Linux build
by default, only enable 64bit build when using ./premake4_linux64 and only 32bit build when using ./premake4_linux
remove some warning
2013-10-22 18:10:45 +00:00
erwin.coumans@gmail.com
379f0079e0 Added Dantzig MLCP solver option from Open Dynamics Engine (trying to avoid naming/linking conflicts in case ODE and Bullet is used together)
If an MLCP solver fails, use PGS/SI fallback, add a boolean return value for 'solve' method
2013-10-21 23:27:09 +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
d998680a68 fix error in Visual Studio 2005 build, due to unsupported SSE intrinsics 2013-10-16 21:25: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
858c890c96 prettify the debug wireframe drawing of sphere, capsule, cylinder and cone
add an btAssert in normalize of btVector3 and 'normalized' always use 'normalize'
2013-09-17 02:01:14 +00:00
erwin.coumans
5f5d601ebf added two methods to btQuaternion, and add a note that the 'angle' method returns the half angle.
angleShortestPath and getAngleShortestPath
Thanks to Tully Foote. This fixes issue 379.
2013-09-16 19:05:36 +00:00
erwin.coumans
c28652de37 add serialization for btGearConstraint
support 'linearFactor' and 'angularFactor' for btRigidBody world importer
2013-09-14 17:51:09 +00:00
erwin.coumans
6fd4738a9e use the old data structures for single precision serialization, to make it backwards compatible
So files created by the new double precision serialization of Bullet 2.82 cannot be read by old Bullet versions,
but double precision serialized file generated by older Bullet versions can be read by Bullet 2.82 or newer.
2013-09-14 16:49:31 +00:00
erwin.coumans
e22a11c021 update serialization structures 2013-09-14 06:22:22 +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
29915ba7fd bump up VERSION to 2.82 in various places, there is still some more issue to be fixed before release. 2013-09-12 20:37:30 +00:00
erwin.coumans
e792f0e549 Add faster processing of btCompoundShape versus btCompoundShape, using a dedicated btCompoundCompoundCollisionAlgorithm,
with hash pair caching and tandem tree traversal. It should be much faster, when using many child shapes for both compounds.
Fix iOS compilation, added header.
2013-09-12 19:28:39 +00:00
erwin.coumans
a197c58935 Add #ifdef BT_NO_SIMD_OPERATOR_OVERLOADS before including Bullet headers, to avoid clashes with XNAMath.h
Fixes Issue 710
error C2084: function 'XMVECTOR operator +(FXMVECTOR,FXMVECTOR)' already has a body
error C2084: function 'XMVECTOR operator -(FXMVECTOR,FXMVECTOR)' already has a body
error C2084: function 'XMVECTOR operator *(FXMVECTOR,FXMVECTOR)' already has a body
2013-09-11 00:01:48 +00:00