apply fix for btAcosf/btAsinf (numerical issue causes values of X become slightly larger than 1 or smaller than -1, causing NaNs)
manually add some missing files to msvc projectfiles for now fix in box-box collision detector, preventing it to fail in some rare cases remove redundant line in btHingeConstraint, thanks to teravus fix mouse drag camera rotation issue (modulo 360 instead of 180)
This commit is contained in:
@@ -877,7 +877,7 @@ void DemoApplication::mouseMotionFunc(int x,int y)
|
||||
else if(m_mouseButtons & 1)
|
||||
{
|
||||
m_azi += dx * 0.2;
|
||||
m_azi = fmodf(m_azi, 180.f);
|
||||
m_azi = fmodf(m_azi, 360.f);
|
||||
m_ele += dy * 0.2;
|
||||
m_ele = fmodf(m_ele, 180.f);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding = "Windows-1252"?>
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
@@ -494,6 +494,22 @@
|
||||
RelativePath="..\..\Demos\OpenGL\Win32DemoApplication.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\..\Demos\OpenGL\GL_DialogDynamicsWorld.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Demos\OpenGL\GL_DialogDynamicsWorld.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Demos\OpenGL\GL_DialogWindow.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Demos\OpenGL\GL_DialogWindow.h"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
|
||||
@@ -333,9 +333,9 @@ int dBoxBox2 (const btVector3& p1, const dMatrix3 R1,
|
||||
#undef TST
|
||||
#define TST(expr1,expr2,n1,n2,n3,cc) \
|
||||
s2 = btFabs(expr1) - (expr2); \
|
||||
if (s2 > 0) return 0; \
|
||||
if (s2 > SIMD_EPSILON) return 0; \
|
||||
l = btSqrt((n1)*(n1) + (n2)*(n2) + (n3)*(n3)); \
|
||||
if (l > 0) { \
|
||||
if (l > SIMD_EPSILON) { \
|
||||
s2 /= l; \
|
||||
if (s2*fudge_factor > s) { \
|
||||
s = s2; \
|
||||
|
||||
@@ -222,7 +222,6 @@ void btHingeConstraint::buildJacobian()
|
||||
|
||||
btPlaneSpace1(m_rbAFrame.getBasis().getColumn(2),jointAxis0local,jointAxis1local);
|
||||
|
||||
getRigidBodyA().getCenterOfMassTransform().getBasis() * m_rbAFrame.getBasis().getColumn(2);
|
||||
btVector3 jointAxis0 = getRigidBodyA().getCenterOfMassTransform().getBasis() * jointAxis0local;
|
||||
btVector3 jointAxis1 = getRigidBodyA().getCenterOfMassTransform().getBasis() * jointAxis1local;
|
||||
btVector3 hingeAxisWorld = getRigidBodyA().getCenterOfMassTransform().getBasis() * m_rbAFrame.getBasis().getColumn(2);
|
||||
|
||||
@@ -213,8 +213,8 @@ SIMD_FORCE_INLINE btScalar btFabs(btScalar x) { return fabs(x); }
|
||||
SIMD_FORCE_INLINE btScalar btCos(btScalar x) { return cos(x); }
|
||||
SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sin(x); }
|
||||
SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tan(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { return acos(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { return asin(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1); return acos(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1); return asin(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atan(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAtan2(btScalar x, btScalar y) { return atan2(x, y); }
|
||||
SIMD_FORCE_INLINE btScalar btExp(btScalar x) { return exp(x); }
|
||||
@@ -250,9 +250,13 @@ SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sinf(x); }
|
||||
SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tanf(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAcos(btScalar x) {
|
||||
btAssert(x <= btScalar(1.));
|
||||
if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1);
|
||||
return acosf(x);
|
||||
}
|
||||
SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { return asinf(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAsin(btScalar x) {
|
||||
if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1);
|
||||
return asinf(x);
|
||||
}
|
||||
SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atanf(x); }
|
||||
SIMD_FORCE_INLINE btScalar btAtan2(btScalar x, btScalar y) { return atan2f(x, y); }
|
||||
SIMD_FORCE_INLINE btScalar btExp(btScalar x) { return expf(x); }
|
||||
|
||||
Reference in New Issue
Block a user