Commit Graph

81 Commits

Author SHA1 Message Date
ejcoumans
811c105c24 align btQuadWord on 16byte boundary
slightly improved friction model
2007-09-25 06:58:53 +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
287f11de01 more endianness swapping fun for BVH serialization. 2007-09-19 22:37:22 +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
a7841c7775 rewrote vector/quadword storage, it was incompatible with gcc compiler (causing some run-time problems) 2007-09-11 20:40:55 +00:00
ejcoumans
a71e9c3e5a fixed issue with de-normalized quaternion, causing acosf to fail
See http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1440
Thanks Proctoid for reporting.
2007-09-11 02:49:39 +00:00
ejcoumans
cfde010808 fixed memory leaks caused by pool allocator, thanks Dev0 2007-09-10 19:18:50 +00:00
ejcoumans
ab33083a9c make visual studio 6 compile/run (doesn't support 'long long int', so replace by char* pointers... 2007-09-10 01:53:07 +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
be8cc0bc24 added simple poolallocator, increased version to 2.57 2007-09-08 06:02:55 +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
43d367d232 Fixed issue with transposeTimes. Luckily this method wasn't used in the SDK, except for some optional parts.
Thanks Jay Lee for pointing this out!
2007-08-24 18:30:49 +00:00
ejcoumans
375e428910 updated IBM Cell SDK makefiles 2007-08-18 16:45:06 +00:00
ejcoumans
cdbc95c105 updated IBM Cell SDK makefiles, to use CELL_TOP 2007-08-18 16:36:21 +00:00
ejcoumans
e7304e6cec added Makefiles for IBM Cell SDK 2.1, thanks to Bruce D'Amora, IBM Watson 2007-08-13 04:18:25 +00:00
ejcoumans
ec22825e65 added parallel solver (work in progress) and made modifications to demo/constraints to allow for getting the type without using virtual functions (needed on CELL SPU processors) 2007-08-12 17:27:33 +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
e4363b6e2b added ConstraintSolver/btConeTwistConstraint.cpp to allow for ragdolls
improved hinge constraint: adds limits
added btAtan2Fast
quaternion helper functions
All thanks to Starbreeze Studios / Marcus Hennix, Marten Svanfeldt
2007-07-05 23:17:13 +00:00
ejcoumans
485677513b minor platform dependent fixes to allow compilation under Xenon 2007-06-29 22:30:05 +00:00
ejcoumans
fa2ff30db4 replace __PPU__ by __CELLOS_LV2__, to avoid conflict with IBM Cell SDK (ppu-g++) 2007-06-27 06:55:41 +00:00
ejcoumans
c095927afb don't check twice, thanks Marten Svanfeldt
>>2. reserve(int) method check capacity() < _Count twice.
2007-06-19 23:45:10 +00:00
ejcoumans
769809e3a7 disabled memcpy by default, it seems to be opening a can of worms, some platforms/compilers have it defined in <memory.h>, others in <string.h> etc
also for placement new, include <new> rather then <memory.h>
Thanks Marten Svanfeldt for the help
2007-06-19 23:41:01 +00:00
ejcoumans
ca1c42f07f use <memory> for replacement new 2007-06-16 00:24:28 +00:00
ejcoumans
65d10d7b12 Fixes in aligned object array, to call copy constructor, and not the assignment operator, operator=
Also allows to use the array for classes with virtual methods.
2007-06-15 23:49:52 +00:00
ejcoumans
f1e929f8a4 fixed 'getEuler' method 2007-05-30 03:07:39 +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
82c8687881 - initialize m_unusedW to avoid some warnings.
- added angularFactor to 'cachefriendly' constraint solver
2007-04-23 10:52:38 +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
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
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
ejcoumans
f199cd1347 make visual studio 6 compile again 2007-03-20 05:06:01 +00:00
ejcoumans
151cd4b9da prepare and added constraint solver optimizations, not activated yet. 2007-03-17 00:09:12 +00:00
ejcoumans
1655fbc2c0 fixed some windows related defines, and made btClock optional (behind #define) 2007-03-07 00:33:11 +00:00
sjbaker
3c1ba0023b NULL is not yet defined because this header is sometimes included before stdio.h or stddef.h - rather than change a bazillion places where the header is included, I'll just use 0 instead. 2007-03-06 18:14:37 +00:00
sjbaker
a4a3474fb5 The macro 'btFullAssert' is used like this:
btFullAssert ( yadda_yadda ) ;

...in the btScalar.h header, it's defined as:

    #define btFullAssert

...which means that the statement above becomes:

    ( yadda_yadda ) ;

...which means that code may actually be compiled and executed (unnecessarily) - and even when the code is something simple like:

    ( i > 0 && i < 3 ) ;

...the GCC tosses out a 'statement with no effect' warning - before
it optimises away the code.

The fix is:

   #define btFullAssert(x)

...so that the macro still takes a parameter which is now removed
from the sources so you get:

    ;

...which is guaranteed not to generate code.
2007-03-06 18:06:28 +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
34c979bd02 double precision mode uses double precision epsilons/maximum (DBL_EPSILON instead of FLT_EPSILON) 2007-02-14 04:12:32 +00:00
ejcoumans
5929b2b79d fixed jam 'install' to properly copy right headerfiles in the destination directory 2006-12-26 17:16:40 +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
0710ca2e36 better safe then sorry: set m_data to zeto after deallocation. 2006-12-19 23:54:02 +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
6dff5a218e process contact and non-contact constraints inside the same iteration loop
added first draft for hingeConstraint motor
2006-12-12 03:15:11 +00:00
ejcoumans
2db98be0f7 added sourcefile to cmake 2006-12-06 04:56:26 +00:00
ejcoumans
5a5ba572a7 multi-platform issues with allocator 2006-12-06 04:51:13 +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