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);
improved hinge constraint: adds limits
added btAtan2Fast
quaternion helper functions
All thanks to Starbreeze Studios / Marcus Hennix, Marten Svanfeldt
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.
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
Added btStackAlloc to Bullet (right now only used by btGjkEpa)
removed default constructors of btCollisionWorld/btDiscreteDynamicsWorld, to reduce link-time dependencies