Commit Graph

59 Commits

Author SHA1 Message Date
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
a146bbc293 more memory leak fixes in demo and btSimpleBroadphase.
- deleting object (END key) needs to release
- call destructor of pair cache
2007-10-31 08:17:48 +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
ec76f2e0a3 - keep track of all memory allocations (gNumAllignedAllocs/gNumAllignedFree)
All memory allocations in Bullet go through btAlignedAlloc/btAlignedFree
Fix in hinge constraint constructors, thanks Marcus Hennix!
2007-10-22 22:23:10 +00:00
ejcoumans
6303d98844 - use mfc directly, instead of cellDmaSmallGet (allow sizes under 32 bytes, instead of 16)
- align btBroadphaseProxy to 16 bytes
2007-10-16 00:52:23 +00:00
ejcoumans
23921729ea adding padding to broadphase proxy, to make it 16 bytes (helps some platforms to run) 2007-10-15 02:35:55 +00:00
ejcoumans
ffcdb0f93d BulletMultiThreaded needs to refreshContactPoint for contact manifold (this has been moved to the collision detector, instead of constraint solver)
BulletMultiThreaded support function for box shouldn't compensate for the collision margin anymore
2007-10-14 01:51:07 +00:00
ejcoumans
913b141c23 fix some warning, need virtual destructor 2007-10-14 00:12:22 +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
7a1e53935f make MSVC 6 compile, remove 'int i' out of the for loops 2007-10-12 06:34:01 +00:00
ejcoumans
62103c94de fixed growing of hash table, to avoid hard limit on overlapping pairs 2007-10-12 05:53:27 +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
52eb5fa1a4 don't use multisap yet in basic demo.
fix crash in multi sap (due to new pair manager)
2007-10-11 03:32:37 +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
11cfbc489d upgraded version, fixed compiling issues 2007-09-10 01:25:09 +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
0f7193c0f8 fixed MSVC 6 build, thanks Proctoid, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1375
fixed double precision build issues, thanks Alex Silverman, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1434
2007-08-31 23:32:51 +00:00
ejcoumans
7c0abad041 added aabb overlap check for multi SAP broadphase 2007-08-03 01:48:34 +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
177b6f5ce2 Added btUniformScalingShape (including support for debug rendering etc)
This allows to re-use a convex shape, while each instance can re-scale it (with a uniform scalar factor)
2007-07-28 19:20:45 +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
7c5164baaf made data protected so derived classes can access it 2007-07-03 23:22:17 +00:00
ejcoumans
5f8873c339 support diamondsubdivision (thanks Jay for contribution)
support user-defined broadphase collision filtering (thanks Marten)
make sure btSimpeDynamicsWorld doesn't use cache friendly optimization in the solver (added an assert, and updated BasicDemo)
2007-06-29 22:13:15 +00:00
ejcoumans
ca24744b9d removed obsolete variables/code 2007-06-19 23:57:25 +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
ejcoumans
853bafb7ae Get the open source Bullet library more in sync with Playstation SPU version 2007-04-10 01:02:58 +00:00
ejcoumans
cef39974e1 fixed some enum issue (comma at last entry) 2007-03-21 18:51:40 +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
57883344df removed testing assert(0) 2007-03-07 00:22:40 +00:00
ejcoumans
adfdea5ca6 replaced #include "new.h" to #include <new> 2007-03-06 23:40:06 +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
e610598d33 - Added compressed/quantized AABB tree, 16 bytes per node, while supporting 32-bit (triangle) indices. Should be faster and smaller then original version (quantized aabb check is done in integer space)
Original aabb nodes are 44 bytes (with full floating point precision and additional part index)
- added meter-unit scaling support in ColladaConverter.cpp
2007-02-25 06:11:23 +00:00
ejcoumans
581468ceec Added btCapsuleShape. This could already be simulated by simply adding 2 spheres to the btMultiSphereShape, but this was bad documented/unknown.
For tapered capsules, you can still use btMultiSphereShape, just pass 2 spheres with different radius.
2007-01-30 00:09:08 +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
b6d1b4c94e Added btNearCallback. This is similar to Open Dynamics Engine (ODE) dNearCallback, but important differences:
- contact points are persistent (lifetime more then one frame, for warmstarting/incremental contact point management)
- continuous collision detection, time of impact
Added btRigidBody::isInWorld(), returns true if btRigidBody is inside a btCollisionWorld/btDynamicsWorld derived class
Added angularFactor to btRigidbody, this helps some character control (no angular impulse applied)
2006-12-04 15:42:03 +00:00
ejcoumans
71145de242 renamed ConcaveShape to btConcaveShape
added btHeightfieldTerrainShape (not done yet)
2006-11-29 02:11:25 +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
b5afb11282 Work on some improvements for GJK/PenetrationTestBullet.cpp. if this introduces issue, will need to revert. 2006-11-14 21:53:59 +00:00
ejcoumans
a9172d8684 Added GIMPACT integration for moving concave meshes (interaction with all other Bullet collision shapes)
Thanks a lot to Francisco León Nájera for the contribution!
2006-11-12 06:15:19 +00:00
ejcoumans
4ab4fc8bb1 Integrated fixes for Solaris from Noerghel, http://continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=673 2006-11-09 15:27:02 +00:00
ejcoumans
23c64fb0db more solver experiments, randomize the order of contact points, not just manifolds
use #defines for constants, rather then const btScalar
2006-11-04 05:22:36 +00:00