Commit Graph
100 Commits
Author SHA1 Message Date
erwin.coumans fd2cc88db8 contact point perturbation is work-in-progress, so disable until fully functional and tested. 2009-02-05 06:25:09 +00:00
erwin.coumans f4ad4b9d00 add generic btConeTwistConstraint::setLimit, and change defaults for limit drawing 2009-02-04 02:41:16 +00:00
erwin.coumans daf350168d fix spelling mistake: pertube -> perturbe 2009-02-03 01:00:55 +00:00
erwin.coumans 0754876d77 Calculate multiple contact points (for convex-convex and convex-plane) when less then 3 points exist in the persistent manifold.
Uses the normal pertubation method, described by Gino van den Bergen:  http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=4&t=288&p=888#p888
Made btRigidBody::getInvInertiaDiagLocal const, thanks to abhikp (http://code.google.com/p/bullet/issues/detail?id=183 )
2009-02-03 00:54:01 +00:00
erwin.coumans bcbe730471 Perform several rotation pertubations, to create multiple collision contact. works for convex versus plane. todo: convex versus convex.
See issue http://code.google.com/p/bullet/issues/detail?id=20:

Note that the default number of pertubation iterations (10) and pertubation angle (0.05) can be modified through the collisionConfiguration:

	btConvexPlaneCollisionAlgorithm::CreateFunc* func = (btConvexPlaneCollisionAlgorithm::CreateFunc*)collisionConfiguration->getCollisionAlgorithmCreateFunc(BOX_SHAPE_PROXYTYPE,STATIC_PLANE_PROXYTYPE);
	func->m_numPertubationIterations = 0;
	func = (btConvexPlaneCollisionAlgorithm::CreateFunc*)collisionConfiguration->getCollisionAlgorithmCreateFunc(STATIC_PLANE_PROXYTYPE,BOX_SHAPE_PROXYTYPE);
	func->m_numPertubationIterations = 0;
2009-02-02 21:11:19 +00:00
erwin.coumans dc5cc018f1 ColladaConverter: when trying to create a unique name, double-check if it doesn't exist yet 2009-01-30 02:30:32 +00:00
erwin.coumans 57fb21879b Expose various advanced friction options to the developer, and use a higher-quality friction model by default, to match ODE quickstep constraint solver.
Thanks to Martijn Reuvers for bringing this up, and reproduction case.
See issue here: http://code.google.com/p/bullet/issues/detail?id=177
2009-01-20 01:21:48 +00:00
erwin.coumans 987b5cbfb1 fix in friction in the ODE constraint solver testing code.
Thanks to Martijn Reuvers:
http://code.google.com/p/bullet/issues/detail?id=169
2009-01-19 07:45:01 +00:00
erwin.coumans ed4fab6c47 Fix in btCompoundShape that can cause removeChildShapeByIndex to crash.
Thanks to Benoit for the report and proposed fix:
http://code.google.com/p/bullet/issues/detail?id=171
2009-01-19 07:32:24 +00:00
erwin.coumans 994224c94f fix another bug caused by error-prone btCollisionShape 'getShapeType' refactoring.
Thanks a lot to Alex Silverman for the report and fix:
http://code.google.com/p/bullet/issues/detail?id=170
2009-01-19 07:19:24 +00:00
erwin.coumans fb15a0ab27 fix bug in btSoftBodyHelpers, flags the wrong linked index-pairs.
Thanks to basarugur for the fix:
http://code.google.com/p/bullet/issues/detail?id=172
2009-01-19 07:15:23 +00:00
erwin.coumans 0e3b04d952 Add COLLADA physics support for GImpact (allowing dynamic moving rigid bodies using concave collision shapes) in ColladaDemo, and ColladaConverter (import and export)
Note: ColladaConverter will export a btGImpactConvexDecompositionShape the same as a btCompoundShape, so importing an exported btGImpactConvexDecompositionShape (roundtrip) creates a btCompoundShape
2009-01-19 04:18:02 +00:00
erwin.coumans d1263be23f Fix compile error: invalid initialization of non-const reference of type ‘btVector3&’ from a temporary of type ‘btVector3’ 2009-01-16 05:21:54 +00:00
erwin.coumans 5a0d8a9470 Demos folder is not in the include path, use relative path to access btDebugDrawer.h
remove non-existent projects from CMakeLists.txt

Thanks a lot to Paul Martz for the report and suggested fixes.
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=3069
2009-01-14 01:18:41 +00:00
erwin.coumans f8c80cc3f6 updated msvc projectfiles 2009-01-12 23:43:42 +00:00
erwin.coumans ab879b0528 fix build system problems, Dynamica build for Mac OSX, buyoancy demo 2009-01-12 23:26:07 +00:00
erwin.coumans bdfd9784ed fix msvc compilation/crash when shooting a box 2009-01-08 23:48:13 +00:00
erwin.coumans 9b57ba57f7 minor build system thing for Extras/iff binary file format 2009-01-08 05:11:06 +00:00
erwin.coumans e839350a2c bump up the Dynamica version to 2.73, to match the Bullet version (avoids confusion for now) 2009-01-08 00:16:12 +00:00
erwin.coumans 48526b720c Fixes in Dynamica that let's Maya Plugin playback the simulation using Maya 2009 (used to only work with previous version).
Thanks to Lawrence Chai from Disney Animation for the contribution.
2009-01-07 23:38:27 +00:00
erwin.coumans 4be20dc347 BulletMultiThreaded optimization: remove some memory copy on non-SPU platforms, using cellDmaGetReadOnly. 2008-12-12 22:28:16 +00:00
erwin.coumans c541414c84 disable btDbvt::collideTT with transform, it is unused and uses an invalid Intersect method. 2008-12-09 06:21:19 +00:00
erwin.coumans 8ed2db9b42 finally applied this 'getGravity' patch, so getGravity matches setGravity.
Thanks to Evgeny for the report/patch:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1852
http://code.google.com/p/bullet/issues/detail?id=23
2008-12-09 02:16:05 +00:00
erwin.coumans 6db1b932fd Make the btDbvtBroadphase deterministic/reproducable, by sorting the btBroadphasePair using unique ID, instead of proxy address.
The btAxisSweep3 didn't suffer from this issue, because proxies were always allocated in-order, as part of an array.
2008-12-08 20:16:29 +00:00
erwin.coumans 65cdd7146f Use placement new for copy constructor of arrays. Thanks to M. Reuvers for the patch.
http://bulletphysics.com/Bullet/phpBB3/viewforum.php?f=9

Generally, however, it is best to avoid copying entire arrays, but use a 
reference.

typedef btAlignedObjectArray<btSomeClass> Array;

Array a;
Array b = a;//avoid this whenever possible

This is much better:
Array& b = a;//use a reference
const Array& b = a; //or const reference
2008-12-08 17:57:18 +00:00
erwin.coumans f3a70b65eb Fix issues with btCompoundShape when adding/removing child shapes after construction of a btRigidBody.
Thanks tp for the report:
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2925&p=11700#p11700
2008-12-07 20:57:38 +00:00
erwin.coumans 06167a0b31 For visual studio 2005 and later project files, in release mode use /fp:fast, /arch:SSE2 and using intrinsics.
Thanks to Roy Eltham for the tip:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2930
2008-12-06 01:54:29 +00:00
erwin.coumans 635e1a6aa0 set broadphase handle to zero when destructing a btCollisionWorld, just in case a collision object/ rigid body is re-used.
Thanks to Ole for reporting

Fix a bug , causing some deep penetrations to be missed. Not likely to have impacted many users, as such deep penetrations should have prevented in the first place.
Thanks a lot to Andy O'Neil for reporting and reproduction case.
2008-12-05 22:40:13 +00:00
erwin.coumans b89b71b38d improving the SSE constraint solver performance: avoid a FPU/minus operation, by replacing a _mm_add_ps(-normal,X) by _mm_sub_ps(X,normal) 2008-12-03 17:40:01 +00:00
erwin.coumans 6966b627a9 update ChangeLog 2008-12-03 06:20:23 +00:00
erwin.coumans 452fd24501 use 0.2 for erp, 0.4 makes stacks very spungy 2008-12-03 06:09:25 +00:00
erwin.coumans a064fd2052 Use the opposite constraint axis inside the constraint solver for the second object (-normal).
This makes it easier to port existing constraints and makes it 100% compatible with ODE quickstep constraint layout (getInfo2)
2008-12-03 04:52:23 +00:00
erwin.coumans 12a9a6e412 reverted patch, it breaks all the demos. 2008-12-02 22:32:45 +00:00
erwin.coumans 23bb0d94e6 documentation/parameter name fix for btMatrix3x3::setEulerZYX. There is no change in behaviour, no compatibility issues.
Thanks Tully Foote for the patch.
http://code.google.com/p/bullet/issues/detail?id=157
2008-12-02 22:27:26 +00:00
erwin.coumans 76b3e44117 Enable contact constraint in the obsolete/experimental SpuParallellSolverTask. It will be replaced by a better parallel constraint solver. 2008-12-02 07:39:13 +00:00
erwin.coumans 5383ed4930 + need to reset rigid body using 'setCenterOfMassTransform' to reset world inertia tensor
+ fixes in compound algorithm -> recompute contact points
+ add debug drawing to some demos.
+ revert btJacobianEntry change
+ replace dCROSSMAT by btVector3::getSkewSymmetricMatrix
2008-12-02 04:01:56 +00:00
erwin.coumans f0c302f65c update changelog 2008-12-01 16:25:43 +00:00
erwin.coumans bfa8ebfbd8 fixes to keep compiler and unix/libspe developers happy 2008-12-01 16:22:43 +00:00
erwin.coumans dd21959709 Minor fixes to keep trunk compiling, while doing the refactoring. 2008-12-01 07:24:39 +00:00
erwin.coumans bbfdcd44b6 Minor fixes to keep trunk compiling, while doing the refactoring. 2008-12-01 06:57:41 +00:00
erwin.coumans 7341c6ee7e Minor fixes to keep trunk compiling, while doing the refactoring. 2008-12-01 06:55:27 +00:00
erwin.coumans e80feca36b Big work-in-progress refactoring of the constraint solver:
1) Add fast branchless SIMD support for constraint solver (Windows only until we get other contributions).
See resolveSingleConstraintRowGenericSIMD in Bullet/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
resolveSingleConstraintRowGenericSIMD can be used for all constraints, including contact, point 2 point, hinge, generic etc.

2) During this refactoring, all constraints support the obsolete 'solveConstraintObsolete' while we add 'getInfo1' and 'getInfo2' support.
This interface is almost identical interface to Open Dynamics Engine, to make it easier to port Dantzig LCP solver.

3) Some minor refactoring to reduce huge constructor overhead in math classes.
2008-12-01 06:41:25 +00:00
erwin.coumans 7e93be739b add copy constructor for btAlignedObjectArray, to avoid crashes as reported by JamesH
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?p=11600#p11600
2008-11-30 16:47:36 +00:00
erwin.coumans e26b11ea5a fixed IBM Cell sdk build + demo (need to review related patch), thanks Jochen for reporting the issues. 2008-11-26 19:34:20 +00:00
erwin.coumans 82047e601e updated Bullet sequential impulse constraint solver, so it matches 100% ODE PGS quickstep solver innerloop, mainly by renaming variables... 2008-11-26 00:27:35 +00:00
erwin.coumans 7dda192bfc duplicate class name causes crashes, thanks to Nado and mickey for the report
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?t=2884
2008-11-20 19:18:48 +00:00
erwin.coumans bdea80f2ca added missing Jamfile 2008-11-20 08:10:05 +00:00
erwin.coumans bab2854e16 minor update in Bullet user manual (needs a lot of work) 2008-11-20 07:52:24 +00:00
erwin.coumans decf91a34d Made btCollisionWorld::convexSweepTest and btGhostObject::convexSweepTest consistent. Both have an optional last argument for allowedCcdPenetration.
Bugfix due to recent change in friction in constraint solver.
2008-11-19 19:55:14 +00:00
erwin.coumans 50344c4a23 Add support for broadphase acceleration of convex cast (re-use rayTest implementation with an added aabb min/max, zero for rays)
Add Concave Convexcast demo back in AllBulletDemos, and tweaked it a bit.
Fix view frustum of ForkLiftDemo (caused picking to fail)
Removed innerloop profiling for ray and convex casts, it hurts performance.
Set default #aabb's in CDTestFramework to 8192
2008-11-19 00:38:29 +00:00
erwin.coumans cb03329d06 added missing license in headers 2008-11-18 01:42:55 +00:00
erwin.coumans 615b7fbe94 removed unused files, accidently copied wrong license header in them. 2008-11-18 01:39:00 +00:00
erwin.coumans dc8692ba94 Added IBM Cell SDK 2.x software_cache to Bullet/Extras. There is an option to enable it for the BulletMultiThreaded Cell version.
See USE_SOFTWARE_CACHE in Bullet\src\BulletMultiThreaded\SpuNarrowPhaseCollisionTask\SpuGatheringCollisionTask.cpp
It improves the Bullet midphase collision detection (triangle/vertex fetch)
The license is CommonPublicLicense-1.0, see included license docs.
2008-11-18 01:33:30 +00:00
erwin.coumans 50f475feb5 moved a few Extras projects into Extras/obsolete. 2008-11-17 21:05:22 +00:00
erwin.coumans fe461296c6 Fix issue with un-initialized broadphase proxy during broadphase insert. It was an chicken-egg problem:
1) creating a broadphase proxy -> adding pairs during insertion. But during this pair insertion, the btGhostObject broadphase handle isn't set yet (it is done in step 2)
2) assign the broadphase proxy to btGhostObject
Thanks to ihar3d for the report http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2864
2008-11-17 18:40:21 +00:00
erwin.coumans bc131321a8 fix in (unused) operator == 2008-11-16 08:06:28 +00:00
erwin.coumans 0deffb7495 mutable wasn't needed for this anonymous union (btBroadphasePair) 2008-11-16 08:06:07 +00:00
erwin.coumans a006cea5ab cosmetic text fix for ForkLiftDemo 2008-11-16 07:48:08 +00:00
erwin.coumans f474e58fb1 some minor fixes for BulletMultiThreaded 2008-11-16 06:39:45 +00:00
erwin.coumans 686accab16 + repaired SpuParallellSolverTask: support for warmstarting and added btAssert for constraint sizes that exceed CONSTRAINT_MAX_SIZE
+ Share some more code between SpuParallelSolver and btSequentialImpulseConstraintSolver (both use btSolverBody now)
Lack of warmstarting reported here: http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2858
+ allow btBoxBoxDetector to execute on SPU.
2008-11-16 05:48:42 +00:00
erwin.coumans dcf3f96869 Raise number of objects to 16384, move all objects at 0.01 speed, to show worst case behaviour (and CUDA benefits) 2008-11-15 23:44:40 +00:00
erwin.coumans 21f03f2aed add 'NextScene' button and minor help in GUI 2008-11-15 23:42:39 +00:00
erwin.coumans 972d3be247 Disable Bullet SAP by default (initialization takes too long, will speed that up later), just compare btDbvt, CUDA and OPCODE broadphases 2008-11-15 23:06:12 +00:00
erwin.coumans 4d0c11cd95 add PE_REF macro to allow Win32 SIMD for Physics Effects box-boxBoxDistance (although performance hardly differs) 2008-11-15 22:40:09 +00:00
erwin.coumans 29bfd06af7 Disable friction warmstarting by default, removing second friction direction. This gives a large performance increase.
friction warmstarting can be turned on using:
dynamicsWorld ->getSolverInfo().m_solverMode |= SOLVER_USE_FRICTION_WARMSTARTING;
2008-11-15 22:20:55 +00:00
erwin.coumans a5c18db854 fix CMake install for CMAke 2.6 -> version GREATER then 2.5 2008-11-15 03:48:24 +00:00
erwin.coumans 183dcb0ce4 fixed uninitialized variable, thanks to Roman 2008-11-15 00:45:04 +00:00
erwin.coumans 78a7b07b41 removed BulletSpuOptimized.pdf and Bullet_Faq.pdf, it will be moved into the Bullet_User_Manual.pdf 2008-11-15 00:05:26 +00:00
erwin.coumans cc43193b25 Fixes to allow compilation of BulletMultiThreaded under 64bit linux 2008-11-14 23:51:49 +00:00
erwin.coumans 1f66cd15a7 minor tweaks to the demos 2008-11-13 08:32:47 +00:00
erwin.coumans 352aed528e Added specialKeyboardUp handler to GLUI (why was it missing?)
Some cleanup for ForkLiftDemo
Enable textures for ConcavePhysicsDemo, 
Added scaling to BasicDemo to show small objects (20 centimeter)
Removed demos from 'AllBulletDemos': less (clutter) = more
2008-11-13 07:33:25 +00:00
erwin.coumans 055c82ce08 disable raycast accelerator in Bullet, for better sweep and prune performance comparison (Bullet SAP) 2008-11-12 22:59:26 +00:00
erwin.coumans 5493ba8411 Updated ChangeLog
Rename CProfileManager::DumpAll to CProfileManager::dumpAll
2008-11-12 22:52:13 +00:00
erwin.coumans 9516e505a7 fix broken build
Add btCompoundShape export support for BulletColladaConverter. 
Thanks to JamesH for the report/request:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=12&t=2840
2008-11-12 22:25:23 +00:00
erwin.coumans 5feea39803 Fix compilation for MSVC 6.0 for Bullet and COLLADA DOM.
Fix issues with btDbvt: use ATTRIBUTE_ALIGNED16
Removed several places where variable was declared within for statement: for (int i=0; should be int i; for (i=0
2008-11-12 18:37:05 +00:00
erwin.coumans 444fbfeb40 add obsolete 'getPoints' to be backwards compatible (breaks MayaPlugin) 2008-11-12 16:53:06 +00:00
erwin.coumans c4bd276dfc make it easier to disable btQuickProf,
added a CProfileManager::DumpAll, to dump/printf all timings for one simulation frame.
2008-11-12 02:45:59 +00:00
erwin.coumans 1381394dd8 reverted 'getActiveObjects', island management will be improved for Bullet 2.74 release.
The implementation was error-prone and could lead to crashes.

See http://code.google.com/p/bullet/issues/detail?id=128
2008-11-11 16:19:20 +00:00
erwin.coumans 0384562db0 removed bloated reference docs, will add them in a separate package 2008-11-10 22:26:16 +00:00
erwin.coumans 85341fee2a fix more places in btSoftBody that assume btRigidBody (it wasn't designed to support btCollisionObject/btGhostObject).
Add another 'findActiveObject'
2008-11-10 21:33:11 +00:00
erwin.coumans 3c0ca0d931 Fix btSoftBody issue, so it can interact with btCollisionObject and btGhostObject (and not just btRigidBody and btSoftBody)
Thank for the report mi076 http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2823

remove legacy.c from libxml
removed #include <math.h> from btQuadWord.h , it should be centralized in btScalar.h (to allow easier replacement with fastmath.h etc)
2008-11-10 20:33:14 +00:00
erwin.coumans 8865e38e5b bugfix: for btCompoundShape::getChildTransform: return (const) reference to btTransform, not a copy.
added btCompoundShape::updateChildTransform
Thanks to ejtttje, see http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2831
2008-11-10 09:04:04 +00:00
erwin.coumans 463a1b74c1 The SPURS version requires 16-byte alignment at the moment, and Cell SDK doesn't, so keep it like this for 2.73. @todo: Need to figure out better way to deal with those differences. 2008-11-09 23:35:23 +00:00
erwin.coumans bf3b6a2140 autogenerated projectfiles, add BulletDynamics/Character, moved from CharacterDemo 2008-11-08 22:50:57 +00:00
erwin.coumans 049270bb29 add Character to Jamfile 2008-11-08 22:49:16 +00:00
erwin.coumans 9bba23bf51 use eRadial as default for TerrainDemo 2008-11-08 22:42:19 +00:00
erwin.coumans 556241c92f updated build system for BulletDynamics/Character files 2008-11-08 21:46:21 +00:00
erwin.coumans 5dac27e694 fix in GIMPACT, reported here: http://code.google.com/p/bullet/issues/detail?id=118
tweak character margin for smoother sliding (needs to be fixed properly)
2008-11-08 21:33:37 +00:00
erwin.coumans f9aa7f3b53 Add Character control to btDiscreteDynamicsWorld (moved btCharacterControllerInterface/btKinematicCharacterController functionality from demo)
Remove ibmsdk from CcdPhysicsDemo and CollisionDemo
2008-11-08 21:01:20 +00:00
erwin.coumans ce0bdd891d added synchronizeSingleMotionState, thanks Chunky. 2008-11-08 19:34:05 +00:00
erwin.coumans 075ba0b9d9 Enabling USE_SEPDISTANCE_UTIL2 requires 100% reliable distance computation, but there are issues with large size rations. todo: fix this
Make synchronizeMotionStates() pure virtual in btDynamicsWorld and public in btDiscreteDynamicsWorld. Thanks Chunky.
2008-11-08 19:27:53 +00:00
erwin.coumans 3e9af21cec disable btActivatingCollisionAlgorithm 2008-11-08 17:14:13 +00:00
erwin.coumans 98e66fc1c7 fix issue with PosixThreadSupport on non-Apple platforms 2008-11-08 16:33:58 +00:00
erwin.coumans f6dcf94f25 Reduce default memory pool sizes (will use heap on overflow anyway), fits better with iPhone and consoles
Debug drawer needs to iterate over all objects, not just active
2008-11-08 06:37:48 +00:00
erwin.coumans 1996004b01 removed a few unused variables 2008-11-08 05:29:19 +00:00
erwin.coumans 96aa18f12f don't align btVector3 for now (need to reconsider it) 2008-11-08 05:28:24 +00:00
erwin.coumans cef40e5cce no 'const int' but inline for a few methods
remove redundant/unreachable 'breaks'
2008-11-08 05:27:26 +00:00
erwin.coumans c3dfcd21bf add missing appTerrainDemo project/rc files 2008-11-07 21:41:51 +00:00
erwin.coumans f285cb5e97 removed comment (from Ozzy Osbourne) 2008-11-07 05:17:13 +00:00
erwin.coumans 810bc73142 don't align IBM Cell SDK version (USE_LIBSPE2) 2008-11-07 05:15:05 +00:00