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)
This commit is contained in:
@@ -16,7 +16,7 @@ subject to the following restrictions:
|
||||
#include "btAlignedAllocator.h"
|
||||
|
||||
|
||||
#if defined (BT_HAS_ALIGNED_ALOCATOR)
|
||||
#if defined (BT_HAS_ALIGNED_ALLOCATOR)
|
||||
|
||||
#include <malloc.h>
|
||||
void* btAlignedAlloc (size_t size, int alignment)
|
||||
|
||||
@@ -33,7 +33,7 @@ subject to the following restrictions:
|
||||
#define ATTRIBUTE_ALIGNED16(a) a
|
||||
#define ATTRIBUTE_ALIGNED128(a) a
|
||||
#else
|
||||
#define BT_HAS_ALIGNED_ALOCATOR
|
||||
#define BT_HAS_ALIGNED_ALLOCATOR
|
||||
#pragma warning(disable:4530)
|
||||
#pragma warning(disable:4996)
|
||||
#pragma warning(disable:4786)
|
||||
@@ -288,7 +288,7 @@ SIMD_FORCE_INLINE float btSelect(unsigned condition, float valueIfConditionNonZe
|
||||
#endif
|
||||
}
|
||||
|
||||
template<typename T> inline void btSwap(T& a, T& b)
|
||||
template<typename T> SIMD_FORCE_INLINE void btSwap(T& a, T& b)
|
||||
{
|
||||
T tmp = a;
|
||||
a = b;
|
||||
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
|
||||
return(0);
|
||||
}
|
||||
inline btBlock* beginBlock()
|
||||
SIMD_FORCE_INLINE btBlock* beginBlock()
|
||||
{
|
||||
btBlock* pb = (btBlock*)allocate(sizeof(btBlock));
|
||||
pb->previous = current;
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
current = pb;
|
||||
return(pb);
|
||||
}
|
||||
inline void endBlock(btBlock* block)
|
||||
SIMD_FORCE_INLINE void endBlock(btBlock* block)
|
||||
{
|
||||
btAssert(block==current);
|
||||
//Raise(L"Unmatched blocks");
|
||||
|
||||
@@ -25,7 +25,7 @@ subject to the following restrictions:
|
||||
|
||||
#define btRecipSqrt(x) ((btScalar)(btScalar(1.0)/btSqrt(btScalar(x)))) /* reciprocal square root */
|
||||
|
||||
inline btVector3 btAabbSupport(const btVector3& halfExtents,const btVector3& supportDir)
|
||||
SIMD_FORCE_INLINE btVector3 btAabbSupport(const btVector3& halfExtents,const btVector3& supportDir)
|
||||
{
|
||||
return btVector3(supportDir.x() < btScalar(0.0) ? -halfExtents.x() : halfExtents.x(),
|
||||
supportDir.y() < btScalar(0.0) ? -halfExtents.y() : halfExtents.y(),
|
||||
@@ -33,7 +33,7 @@ inline btVector3 btAabbSupport(const btVector3& halfExtents,const btVector3& sup
|
||||
}
|
||||
|
||||
|
||||
inline void btPlaneSpace1 (const btVector3& n, btVector3& p, btVector3& q)
|
||||
SIMD_FORCE_INLINE void btPlaneSpace1 (const btVector3& n, btVector3& p, btVector3& q)
|
||||
{
|
||||
if (btFabs(n.z()) > SIMDSQRT12) {
|
||||
// choose p in y-z plane
|
||||
|
||||
Reference in New Issue
Block a user