Commit Graph

313 Commits

Author SHA1 Message Date
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
ejcoumans
ca973e9322 Fixed AABB tree building, which failed for certain large triangle meshes due to stack overflow.
Now it has a safer check for unbalanced tree, and forces them to be balanced.
2007-01-04 22:31:31 +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
sjbaker
208bbe7594 Added a set of empty, classless 'extern "C"' probe functions to allow '.so' loaders and application domain 'autotools' to easily and unambiguously check for the correct installation of the various bullet libraries.
eg:

  bulletmath_suffix="-lbulletmath"
  bulletcollision_suffix="-lbulletcollision"
  bulletdynamics_suffix="-lbulletdynamics"
  dnl Check bulletmath library
  AC_CHECK_LIB(bulletmath, btBulletMathProbe, true,
  AC_MSG_ERROR([there seems to be a problem with the bulletmath library]))
  LIBS="$bulletmath_suffix $LIBS"
  dnl Check bulletcollision library
  AC_CHECK_LIB(bulletcollision, btBulletCollisionProbe, true,
  AC_MSG_ERROR([there seems to be a problem with the bulletcollision library]))
  LIBS="$bulletcollision_suffix $LIBS"
  dnl Check bulletdynamics library
  AC_CHECK_LIB(bulletdynamics, btBulletDynamicsProbe, true,
  AC_MSG_ERROR([there seems to be a problem with the bulletdynamics library]))
  LIBS="$bulletdynamics_suffix $LIBS"
2006-12-26 00:39:32 +00:00
sjbaker
db573e4a59 Clean up about a bazillion compilation warnings. 2006-12-22 02:33:42 +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
bf591b44ec Replaced most STL std::vector with btAlignedObjectArray.
Same interface but less features (push_back, pop_back, clear, size, [] etc).
To prepare for SIMD/SSE code: Added 		#define ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a
2006-12-06 04:22:36 +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
0757f1fe9e add 'force activate', for static/kinematic objects that get moved.
fixed some activation issues with kinematic objects
2006-11-21 13:00:18 +00:00
sjbaker
04d41b7a0a Cleanup compilation warnings. 2008-02-12 04:22:31 +00:00
ejcoumans
3adf09f7e3 updated EPA,
updated user manual (work in progress)
2006-11-18 03:27:01 +00:00
ejcoumans
8cbd721a1f added some brute-force way to shrink convex polyhedra (to compensate collision margin)
made Extra/EPA compile again, updated Pierre's testbed to compile out-of-the-box
2006-11-11 03:22:15 +00:00
ejcoumans
438230b95b added proper clipping of angular limits in generic d6 ConstraintSolver/btGeneric6DofConstraint.cpp
added trianglebuffer (easier GIMPACT integration)
2006-11-10 22:56:45 +00:00
ejcoumans
6d47d9492e added non-uniform scaling to btMultiSphereShape
added ray-aabb check
modified Raycast demo to be more useful for debugging collision shapes
2006-11-09 01:58:33 +00:00
ejcoumans
074e2b2d3b improved robustness of penetrations involving triangles and boxes, by adding their 'preferred' penetration directions.
added wireframe/solid mode for meshes
updated solid penetration depth solver (comparison in Extras)
2006-11-05 05:12:10 +00:00