Commit Graph

78 Commits

Author SHA1 Message Date
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
a98ccc839e enable double precision for triangle indices in BT_USE_DOUBLE_PRECISION mode (need to review this) 2007-09-30 02:28:04 +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
08d036afc7 multi-threading improvements: optionally use software caching (IBM/PS3), move some code from cpp to header to inline. 2007-09-20 22:42:56 +00:00
ejcoumans
a0e92efebb more fixes in serialization/BVH/endianness 2007-09-19 23:04:37 +00:00
ejcoumans
287f11de01 more endianness swapping fun for BVH serialization. 2007-09-19 22:37:22 +00:00
ejcoumans
1d556b9a6c fixed serialization/alignment issue 2007-09-19 22:02:49 +00:00
ejcoumans
9fb6f0af09 added fix for heightfield (division by floating point scalar, instead of integer),
added default aligned alloc/free
2007-09-19 03:19:13 +00:00
ejcoumans
323eed2885 fix in endianness of serialization of BVHs
Thanks Phil Knight!
2007-09-16 05:37:11 +00:00
ejcoumans
2dd54dbfd0 only delete the BVH during re-scaling when we 'own' it.
Thanks Phil Knight for reporting!
2007-09-11 21:18:45 +00:00
ejcoumans
bd2c83e535 updated version to 2.59, fixed 16 byte alignment for BVH serialization 2007-09-11 06:37:27 +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
1763c8f806 make traversal mode public, so user can change it 2007-09-06 06:49:45 +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
5279f9e129 BulletMultiThreaded (SPU/multi-core): added compound shape support and concave-convex (swapped case). Thanks to Marten Svanfeldt 2007-08-02 20:16:58 +00:00
ejcoumans
871521dd6a updated CMake build for btUniformScalingShape/btConvexInternalShape 2007-07-28 21:31:32 +00:00
ejcoumans
38b7f474c3 Added better support for btUniformScalingShape, by moving some data that is not shared from btConvexShape to btConvexInternalShape. This reduces the sizeof btUniformScalingShape to 16 bytes (from 64).
This is good when having lots of re-used shapes with different sizes.

Convex shapes will need to derive from btConvexInternalShape (which is a subclass of btConvexShape). We could have renamed btConvexShape to 'btConvexShapeInterface' (can still do that later)
2007-07-28 21:10:21 +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
7eea7092de Applied FSelUsage.patch, thanks a lot Marten Svanfeldt, Starbreeze Studios 2007-07-12 05:28:10 +00:00
ejcoumans
5c80ff1f7d improved performance by adding constructors to btTransform/btMatrix3x3 to avoid conversions, compoundshape returns const references (instead of duplicate objects)
Thanks Marten Svanfeldt, Starbreeze Studios
2007-07-05 23:48:05 +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
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
114bfad68f made some improvements based on feedback.
- made getHeightFieldValue virtual (allows custom heightfield formats)
- don't use shorts, just full integers (no reason to limit the terrain size to 65536)
2007-06-28 20:40:54 +00:00
ejcoumans
ced94d63bf Thanks to Mårten Svanfeldt for the contribution:
- optionally disable collisions between bodies that are linked with constraints
- improved debug rendering with support for compounds, spheres, capsules
2007-06-28 19:14:30 +00:00
ejcoumans
a0c5401033 bugfix, wrongly assigned value to a local variable (copy/paste bug).
Thanks binofet, see http://continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=366
2007-06-28 00:05:14 +00:00
ejcoumans
cad28a8b35 allow for float data, and prepare for 'quad edge flip', either re-use the first triangle vertex, or second (re-use index 00 or 01) 2007-06-27 19:56:18 +00:00
ejcoumans
3ca6d7385e basic support for height fields. They are producing temporary triangles, similar to the plane shape. 2007-06-27 03:19:34 +00:00
ejcoumans
272a7dfac4 More work on multi-threaded version, fixed alignment issues in DMA.
BulletMultiThreaded shared implementation works now on both Win32 Threads and PS3 Cell SPU.
2007-06-16 02:06:24 +00:00
ejcoumans
718b73371f removed 'processAllTrianglesBruteForce'
autogenerated new visual studio projectfiles
2007-06-14 13:06:05 +00:00
ejcoumans
effb5a8b62 added brute-force triangle iteration method, to allow graphics to skip aabb traversal (useful for debugging) 2007-06-13 22:35:14 +00:00
ejcoumans
eca55afe4d some more changes related to PS3 SPU optimizations (16-byte alignment, allowing non-virtual access to data) 2007-05-25 23:27:49 +00:00
ejcoumans
c1250cd26a Planar triangle meshes with zero extends (in any direction) could cause quantization failures (division by zero).
Added a positive value to quantization AABB (doesn't affect performance).
2007-05-23 20:09:46 +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
2cf026aae3 allow incremental refitting of the quantized aabb tree 2007-04-10 21:40:43 +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
9546633ade Added 'cache friendly' tree traversal format, and traversal. Array of subtrees with specified maximum size. This is useful to fit tree traversals on SPU. 2007-03-27 21:02:45 +00:00
ejcoumans
7adc0742e3 Added demo code that show recursive traversal on tree data that doesn't have explicit left/right child pointers.
Can also be used as starting point for tree versus tree.
2007-03-26 19:19:25 +00:00
ejcoumans
4685f6acc8 Added a refit to the quantized stackless tree, with updated ConcaveDemo. 2007-03-21 02:45:43 +00:00
ejcoumans
c1a54d9edc Attempts to improve performance. Not much gain yet, but good to experiment what has effect and what hasn't.
Added 'DO_BENCHMARK_PYRAMID' to CcdPhysicsDemo.
2007-03-20 20:12:23 +00:00
sjbaker
6b102c65b3 Cleanup some trivial compilation warnings. 2007-03-19 04:27:59 +00:00
ejcoumans
0a5b19864e allow to use compression on btTriangleMesh 2007-03-12 23:19:02 +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
b73900bc60 Improved performance of convex collision shapes, cache local AABB instead of recomputation. This fixes issue with very slow performance in larger .bsp levels.
Moved some asserts into 'btFullAssert', which is disabled by default (see btScalar.h to enable them). This is to speed-up debugging.
2007-02-26 04:59:05 +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