Commit Graph

45 Commits

Author SHA1 Message Date
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
8e51049359 Added btAxisSweep3::resetPool, to avoid non-determinism due to unsorted linked-list, thanks to Ole K., See http://code.google.com/p/bullet/issues/detail?id=126
Fixed recently introduced issue: can't re-use stack as member variable (to reduce memory allocs) in btDbvt, due to recursion.
remove btGjkEpa.* from Makefile.am, Makefile and CMakeLists.txt
avoid division-by-zero in ODE boxbox contact reduction
2008-11-04 09:37:31 +00:00
erwin.coumans
bcd0f48c28 some doxygen updates, added some comments to classes, fix broken links, rename some prefix some internal GIMPACT collision structures using (for example use GIM_AABB instead of BT_AAABB),
removed obsolete btGjkEpa (it was replaced by btGjkEpa2 ages ago)
2008-11-04 04:01:31 +00:00
erwin.coumans
c5112e68e5 make sure the btDbvtBroadphase doesn't add/remove any pairs, use the btNullPairCache 2008-10-28 05:51:32 +00:00
erwin.coumans
876009b053 fix two memory leaks, thanks to Benoit and Ole. 2008-10-27 20:24:01 +00:00
erwin.coumans
6f28170422 Removed obsolete btPoint3: use btVector3 instead 2008-10-27 19:56:48 +00:00
erwin.coumans
e6c850f13b Fix/improve raycast performance for btBvhTriangleMeshShape (btQuantizedBvh, btOptimizedBvh)
Add raycast acceleration for btAxisSweep3, using btDbvtBroadphase, providing large speedup. Can be disabled in constructor to safe memory.
2008-10-14 20:24:28 +00:00
erwin.coumans
fffca75e9f Make raycast benchmark default, to show improved raycasting performance.
Add rayTest to btBroadphaseInterface, and implement efficient version for btDbvtBroadphase to accelerate raycasting.
btAxisSweep3, btSimpleBroadphase and btMultiSapBroadphase implement brute-force method (as before). For now, it is recommended to use btDbvtBroadphase for fastest world raycast.
2008-10-14 06:23:45 +00:00
erwin.coumans
9ad17dda22 Add aabbMin/aabbMax to broadphase proxy, and improve rayTest performance.
Todo: use broadphase acceleration structure (btDbvtBroadphase etc) for ray test
2008-10-10 17:32:52 +00:00
erwin.coumans
d2a282dc07 fixed issue with clamping/quantization in btAxisSweep3,
Thanks to ole.k for report and fix:  http://code.google.com/p/bullet/issues/detail?id=87
2008-09-30 20:58:03 +00:00
erwin.coumans
8b3270f22f Added 2 optimizations for the SAP broadphase: check AABB before remove, and a faster 2D overlap test.
Thanks to Pierre Terdiman/OPCODE Array SAP. Performance goes down from 4.6 to 2.9ms for the 8192 Extras/CDTestFramework benchmark.
2008-09-11 07:34:18 +00:00
erwin.coumans
862ea08d3b use new/delete[] array, overriden by BT_ALIGNED_ALLOCATOR macro.
Thanks to Russell Bartley for the feedback.
2008-09-05 05:58:37 +00:00
erwin.coumans
d2760b18aa fix placement new[], see discussion here:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1787&p=10252#p10252
2008-09-04 18:54:14 +00:00
erwin.coumans
42ad559b2d Add some Doxygen comments for broadphase and linearmath classes. 2008-08-27 02:24:11 +00:00
john.mccutchan
551f0fa1ec Keep track of raw pointer returned from btAlignedAlloc when using placement new on an array. 2008-08-07 16:02:59 +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
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
erwin.coumans
44186898af Got btMultiSapBroadphase in a working state. Now tuning/optimizations can be started.
Added getBroadphaseAabb to btBroadphaseInterface.
2008-03-15 08:59:26 +00:00
erwin.coumans
fbffa3a031 more broadphase/pair cache/MultiSAP improvements. 2008-03-14 03:19:15 +00:00
erwin.coumans
d51c9f3247 second attempt to some pair management changes, allow to choose pair cache at run-time.
use btNullPairCache, btHashedOverlappingPairCache or btSortedOverlappingPairCache
2008-03-14 02:02:51 +00:00
erwin.coumans
9a19b66659 need to fix an issue, before making the paircache change. 2008-03-14 01:20:23 +00:00
erwin.coumans
06a9b3dfc9 some pair management changes, allow to choose pair cache at run-time. 2008-03-13 23:57:07 +00:00
ejcoumans
dc4aacb03b add ability for user pair callback, this can be used to keep track of objects, overlapping a certain AABB/shape. 2007-11-01 18:21:17 +00:00
ejcoumans
a101719687 - removed warnings in GLUI, thanks Jorrit Tyberghein for the patch!
- removed memory leaks from BasicDemo and Bullet library (other demos needs to be cleaned up!)
- added memory leak debugging functionality in btAlignedAlloc.h: #define BT_DEBUG_MEMORY_ALLOCATIONS
2007-10-31 08:00:03 +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
eff4fe8ec8 more work on hashed pairmanager. growing doesn't work yet, so need to allocate enough room for the overlapping pairs in advance.
boxbox reports contact point in B, rather then average point
box, cylinder use halfextents corrected for scaling and margin. made the margin in this halfextents explicit in the 'getHalfExtentsWithMargin' and 'getHalfExtentsWithoutMargin'
integrated changed for ODE quickstep solver
replaced inline with SIMD_FORCE_INLINE
some minor optimizations in the btSequentialImpulseConstraintSolver

added cone drawing (for X,Y,Z cones)
2007-10-12 02:52:28 +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
23a197b3dc add alignment for broadphase proxy/handle. need to benchmark this, and check it doesn't degrade the performance on other platforms. Otherwise make it conditional only when USE_LIBSPE2 is defined 2007-10-03 00:41:55 +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
b054f375bc - Added serialization to btBvhTriangleMeshShape/btOptimizedBvh. See ConcaveDemo for example usage.
- added bt32BitAxisSweep3, which co-exists without recompilation, using template class. This broadphase is recommended for large worlds with many objects (> 16384), until btMultiSwap is finished.
- Fixed some recent issues in Bullet 2.57 related to compound (thanks Proctoid) and memory allocations
2007-09-10 01:14:42 +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
b6cd61a5e1 preparation for multi SAP broadphase 2007-08-03 01:39:36 +00:00
ejcoumans
1f7646f72a Refactoring to enable multi SAP broadphase.
This was already planned, and Pierre Terdiman recent thread motivated me to decouple the paircache from the sweep and prune.
http://continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1329
2007-08-02 23:48:46 +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
764087fc4f sign-bit went wrong in case of 32-bit broadphase. Thanks DevO for reporting. 2007-06-01 01:21:44 +00:00
ejcoumans
cf2337ed7b - Fixed a bug in btAxisSweep3 (sweep and prune) related to object removal. Only showed up when at least one btStaticPlaneShape was inserted.
Thanks tbp for more details on reproducing case.
- Fixed issue with full 32bit integers in btAxisSweep3 (define BP_USE_FIXEDPOINT_INT_32), it used only 65536 for quantization, it should use full integer space (0xffffffff)
- Added 'getForwardVector' and getCurrentSpeedKmHour utility functions to btRaycastVehicle
- Fixed local scaling issues (btConvexTriangleMeshShape, btBvhTriangleMeshShape, removed scaling from btMatrix3x3). Thanks Volker for reporting!
- Added second filename search, so that starting BspDemo and ConvexDecompositionDemo from within Visual Studio (without setting the starting path) still works
2007-05-20 16:21:14 +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
sjbaker
6b102c65b3 Cleanup some trivial compilation warnings. 2007-03-19 04:27:59 +00:00
ejcoumans
2b87104184 more solver optimizations, can be disabled using solver->setSolverMode(SOLVER_RANDMIZE_ORDER) 2007-03-17 07:59:27 +00:00
ejcoumans
b2351c84f3 optional define for 32bit handles in Broadphase, which allows number of objects to exceed 32767 2007-03-12 20:14:29 +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
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
2b1657b1dd Refactoring: another huge number of changes, renamed methods to start with lower-case. 2006-09-28 01:11:16 +00:00
ejcoumans
eb23bb5c0c merged most of the changes from the branch into trunk, except for COLLADA, libxml and glut glitches.
Still need to verify to make sure no unwanted renaming is introduced.
2006-09-27 20:43:51 +00:00
ejcoumans
0e04cfc806 First stage in refactoring Bullet: moved Bullet Collision and Dynamics and LinearMath into src folder, and all files in Collision Detection and Dynamics have bt prefix.
Made all buildsystems to work again (jam, msvc, cmake)
2006-09-25 08:58:57 +00:00