Commit Graph

167 Commits

Author SHA1 Message Date
erwin.coumans
d49aeb9dff + improved split impulse constraint solver option
+ improved friction warm starting
+ made constraint solver configuration more consistent (moved m_solverMode into btContactSolverInfo)
+ reset timing in CDTestFramework after initialization (SAP init destorts timings)
+ make it easier to change default sizes for stack allocator in btDefaultCollisionConfiguration
2008-05-29 03:33:32 +00:00
erwin.coumans
6457f5a961 more changes in btGjkEpa2, thanks to Nathanael 2008-05-27 01:09:16 +00:00
erwin.coumans
596e94dfd1 fixes in GJK/btGjkEpa2, thanks to Dev0 for reporting and Nathanael for fixing 2008-05-25 17:45:13 +00:00
erwin.coumans
3d32cf7ddf add penetration depth solver for btCollisionWorld::convexSweepTest, to handle touching/penetrating contact (useful for character controller) 2008-05-24 05:22:41 +00:00
erwin.coumans
561066af75 + make compound versus soft body work (soft body uses interpolated transform)
+ fixed issue with persistent manifold, warmstarting values were not initialized properly
+ don't clear manifold in sphere-sphere collision (need warmstarting)
+ added support for 'split impulse', decouple positional error correction from velocity correction
This avoids adding momentum due to penetration correction, it can be tuned using following variables:
solverInfo.m_splitImpulse = true/false (disable/enable)
solverInfo.m_splitImpulsePenetrationThreshold (below this value, baumgarte/mixed velocity/penetration is used (cheaper, looks more plausible)
solverInfo.m_linearSlop (less jitter, when small amound of penetration is allowed)
2008-05-23 09:05:37 +00:00
erwin.coumans
ea86559480 removed some warnings 2008-05-21 23:29:35 +00:00
john.mccutchan
09fbd19279 Don't return true when the hit happens after the end point 2008-05-21 18:37:41 +00:00
erwin.coumans
6a69fe7f3b use collision margin of btBvhTriangleMeshShape for convexTest.
Thanks to reltham for the contribution.
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2121&p=8454#p8454
2008-05-18 01:15:00 +00:00
erwin.coumans
bd97c5e569 Fixed warnings in Bullet/src core library
Thanks Martijn Reuvers from Two Tribes B.V. (www.twotribes.com) for the patch

To make this work more visible, suppress warnings in external libraries in Extras (COLLADA_DOM, libxml and glui contain many warnings)
Added PreprocessorDefinitions: _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE to vcproj files
2008-05-10 18:00:21 +00:00
erwin.coumans
883d3278ec + fixed btMinkowskiSumShape Sa+b(v) = Sa(v)-Sb(-v) instead of Sa(v)+Sb(v)
+ fix related btMinkowskiSumShape issue in btSubsimplexConvexCast and btGjkConvexCast
+ add hitpoint for btSubsimplexConvexCast
+ reduce maximum number of iterations in conservative advancement/CCD implementations
2008-04-03 18:35:28 +00:00
erwin.coumans
d4698cb3d5 Added SoftBody demo, contribution by Nathanael Presson. Will integrate into Bullet broadphase.
Added very basic drawTriangle for btIDebugDraw, useful for basic softbody visualization.
Added btGjkEpa2, contribution by Nathanael Presson. Improved version of EPA penetration depth computation, more suitable for multi-core/SPU (less memory usage). Note: btGjkEpa2 is not enabled by default currently.
2008-03-30 23:08:06 +00:00
erwin.coumans
65bb612598 - added quickSort to btAlignedObjectArray (has generally better performance then heapSort)
- replaced all usage of heapSort by quickSort
- finished btMultiSapBroadphase. Still some work to be done to increase performance (faster add/remove from child broadphases. 
  uses currently AABB tree to locate child broadphase (should use grid), and sorted array takes too much time.
2008-03-16 04:30:43 +00:00
johnmccutchan
1ac223ca2a Properly set normalInWorldSpace and don't doubly rotate normal for convex vs. convex cast.
Fixes this issue: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1784
2008-02-11 19:16:04 +00:00
ejcoumans
fe4e81ebff - support both 32bit and 16bit indices in ColladaConverter
- added triangle part/index into btManifoldPoint
2008-02-09 03:34:53 +00:00
ejcoumans
7ca3020133 removed some dependencies 2008-02-08 23:22:31 +00:00
ejcoumans
ff3b7f0c0f set applied impulse to zero, when replacing an existing contact point 2008-02-07 08:18:26 +00:00
ejcoumans
a4e63aed00 - DemoApplication, debug text rendering was broken, glLoadIdentity() missing
- copy user data over to child shape
- added applied impulse to btManifoldPoint
- add ContactProcessedCallback (needs test/demo)
- didn't copy over m_additionalDampingFactor into btRigidBody.
2008-02-07 08:00:16 +00:00
johnmccutchan
66cdbb9659 Fixes for IBM Cell SDK 3.0 by Jochen Roth 2007-12-11 19:49:09 +00:00
johnmccutchan
513a055035 Use proper rotation for computing local aabb for convex cast shape.
Propagate hit point from convex caster to world callback [work in progress].
2007-12-07 21:22:38 +00:00
ejcoumans
1245995c84 Added convex cast query to collision world.
Thanks to John McCutchan (JMC)
2007-12-06 00:51:24 +00:00
ejcoumans
f2c9588969 Added raycast against trianglemesh. Will be extended to object cast soon.
Thanks John Rowe (JMC)
2007-11-29 21:24:51 +00:00
ejcoumans
f5fb2d77eb fixed include path (don't use system include <>, but "" instead)
Thanks to Stephen (shatcher) for reporting!
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1696&p=6412#p6412
2007-11-17 17:16:19 +00:00
ejcoumans
2aec2a9969 Added some comments about the btPersistentManifold (contact point cache for potential overlapping pairs)
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1608
2007-11-01 23:42:17 +00:00
ejcoumans
e7caaa28d3 re-organized memory (stack and pool) allocators. this lets the user pass in their own memory allocators. 2007-10-20 02:23:39 +00:00
ejcoumans
ea3dfb4ca3 made 'calculateLocalInertia' const, thanks to cgripeos, see http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1514
- applied a large patch to remove warnings
Thanks to Enrico, see http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1568
- removed SSE includes, added #incude <string.h> for memset in Extras/quickstep, thanks Eternl Knight
- disabled 16-byte alignement on btQuadWord class, it causes problems under PS3 Linux. Need to check out why.
2007-10-13 23:41:37 +00:00
ejcoumans
1baa61bc8d function isn't inline 2007-10-11 03:39:49 +00:00
ejcoumans
0405ce278a use size_t instead of int, for allocator
added hashtable based PairManager, thanks Pierre Terdiman and Erin Catto
improved friction in 'cachefriendly' solver
moved 'refreshcontactpoints' into collision detection, instead of solver
avoid linear search for contact manifolds, by storing an index
ignore margin for sphere shape (its entire radius is already margin)
avoid alignment checks in BVH serialization, they don't compile on 64-bit architectures
made 'bomb' box more heavy
2007-10-11 03:17:54 +00:00
ejcoumans
a38de566c6 make sure aligned structures/classes use the btAlignedAlloc/btAlignedFree, by overriding the operator new/delete for that struct/class.
integrated some contributions from IBM Germany for libspe2
2007-09-25 06:41:57 +00:00
ejcoumans
87df3d0f32 Based on feedback from another professional game company, there are several improvements, including some API change...
Some dynamic memory allocations have been replace by pool allocation or stack allocations.
quantized aabb versus quantized aabb overlap check is made branch-free (helps a lot on consoles PS3/XBox 360)
Collision algorithms are now created through a new btDefaultCollisionConfiguration, to decouple dependency (this is the API change):
Example:
	btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
	m_dispatcher = new	btCollisionDispatcher(collisionConfiguration);
2007-09-08 05:40:01 +00:00
ejcoumans
685138d033 include paths should not be relative starting with "../
It leads to problems with certain compilers, when Bullet/src is located in a long pathname.
Keep include path starting with "LinearMath/, "BulletCollision/, or "BulletDynamics/
2007-07-14 05:08:57 +00:00
ejcoumans
7cd651c266 pass collision shapes as const. fixed some issues with continuous convex cast (resulting hitnormal was not initialized properly, results not proper) 2007-07-11 02:16:39 +00:00
ejcoumans
cdc8485db9 updated version, added 'singleObjectQuery' preliminary collision query (convex cast etc)
added filtering for raycast, thanks Jacky_J
const propagated through a few files
added btHeightfieldTerrainShape.cpp to cmake buildsystem
2007-07-03 05:10:20 +00:00
ejcoumans
68b4f60033 fixed to potential issues, reported by marshall. Thanks! 2007-06-13 20:05:02 +00:00
ejcoumans
bc3f9535ad cleaned up, removed warning under MSVC2005 (Level 4)
Mostly related to alignment and unused variables
2007-04-13 01:37:21 +00:00
ejcoumans
853bafb7ae Get the open source Bullet library more in sync with Playstation SPU version 2007-04-10 01:02:58 +00:00
ejcoumans
151cd4b9da prepare and added constraint solver optimizations, not activated yet. 2007-03-17 00:09:12 +00:00
ejcoumans
054d672592 - removed STL from the Bullet library: replace std::vector by btAlignedObjectArray. Also removed the std::set for overlapping pair set, and turned it into an overlapping pair array. The SAP only adds objects, never removed. Removal is postponed for during traversal of overlapping pairs (duplicates and non-overlapping pairs are removed during that traversal).
- added heap sort and binary search/linear search to btAlignedObjectArray
- fixed wrong cast, thanks Hamstray, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1015
2007-03-06 09:59:17 +00:00
ejcoumans
42278e58dd fixes to add improved double-precision for raycasts 2007-02-14 04:10:55 +00:00
sjbaker
e9b21e21a6 Pathnames between #include files that are intended to be used within application code should not depend on the paths to the subdirectories being known to the compiler because this will not always be the case when an end-user includes your headers.
Includes of files in the local hierarchy must not use <...> please stick with "..."
2006-12-26 15:33:28 +00:00
ejcoumans
df9230327c Contribution to add optional double precision floating point support. Define BT_USE_DOUBLE_PRECISION for all involved libraries/apps. 2006-12-16 05:51:30 +00:00
ejcoumans
df0c044228 removed obsolete code, added #ifdef to allow skipping of default registration of collision algorithm (avoid linking of unneeded code) 2006-12-13 22:44:20 +00:00
ejcoumans
6738ed329d ASSERT -> btAssert
Added btStackAlloc to Bullet (right now only used by btGjkEpa)
removed default constructors of btCollisionWorld/btDiscreteDynamicsWorld, to reduce link-time dependencies
2006-11-29 01:52:09 +00:00
ejcoumans
43ab3c67c4 compiler issue with GCC 3.3.5 2006-11-23 06:27:32 +00:00
ejcoumans
7dc6aa215a some more fixes to get msvc6 happy, and constraint solver: make non-randomizing solver default 2006-11-23 02:57:38 +00:00
ejcoumans
633bb02daa fix to get msvc 6 to compile, related to 'Allocate' template 2006-11-22 19:41:25 +00:00
sjbaker
15bb51d780 Fixed compilation problem with GCC 3.3.5 - which appears at first glance to be due to a compiler error. 2006-11-20 23:21:05 +00:00
ejcoumans
3adf09f7e3 updated EPA,
updated user manual (work in progress)
2006-11-18 03:27:01 +00:00
ejcoumans
b07bb88a2d Added new EPA penetration depth solver
improved gjk/minkowski sampling pd method
added original solver variant, use btSequentialImpulseConstraintSolver2
Added Pierre Terdimans PD testbed
2006-11-16 06:14:12 +00:00
ejcoumans
5a28e96a38 Added a more reliable EPA penetration depth solver, contributed by Nathanael Presson. 2006-11-15 15:40:24 +00:00
ejcoumans
dcdfbe1680 more tweaking to get GJK more reliable 2006-11-15 02:23:45 +00:00