more tweaking to get GJK more reliable
This commit is contained in:
@@ -477,6 +477,22 @@ static void KeyboardCallback(unsigned char key, int x, int y)
|
|||||||
case '4':
|
case '4':
|
||||||
gConvex0.mTransform.setOrigin(gConvex0.mTransform.getOrigin() + btVector3(-gDisp,0,0));
|
gConvex0.mTransform.setOrigin(gConvex0.mTransform.getOrigin() + btVector3(-gDisp,0,0));
|
||||||
break;
|
break;
|
||||||
|
case '7':
|
||||||
|
gConvex0.mTransform.setRotation(gConvex0.mTransform.getRotation()*btQuaternion(btVector3(1,0,0),0.01));
|
||||||
|
break;
|
||||||
|
case '9':
|
||||||
|
gConvex0.mTransform.setRotation(gConvex0.mTransform.getRotation()*btQuaternion(btVector3(1,0,0),-0.01));
|
||||||
|
break;
|
||||||
|
case '1':
|
||||||
|
gConvex0.mTransform.setRotation(gConvex0.mTransform.getRotation()*btQuaternion(btVector3(0,1,0),0.01));
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
gConvex0.mTransform.setRotation(gConvex0.mTransform.getRotation()*btQuaternion(btVector3(0,1,0),-0.01));
|
||||||
|
break;
|
||||||
|
case '5':
|
||||||
|
gConvex0.mTransform.setRotation(gConvex0.mTransform.getRotation()*btQuaternion(btVector3(0,0,1),0.01));
|
||||||
|
break;
|
||||||
|
|
||||||
case '6':
|
case '6':
|
||||||
gConvex0.mTransform.setOrigin(gConvex0.mTransform.getOrigin() + btVector3(gDisp,0,0));
|
gConvex0.mTransform.setOrigin(gConvex0.mTransform.getOrigin() + btVector3(gDisp,0,0));
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ void btGjkPairDetector::getClosestPoints(const ClosestPointInput& input,Result&
|
|||||||
normalInB = pointOnA-pointOnB;
|
normalInB = pointOnA-pointOnB;
|
||||||
float lenSqr = m_cachedSeparatingAxis.length2();
|
float lenSqr = m_cachedSeparatingAxis.length2();
|
||||||
//valid normal
|
//valid normal
|
||||||
if (lenSqr < 0.00001)
|
if (lenSqr < 0.0001)
|
||||||
{
|
{
|
||||||
m_degenerateSimplex = 5;
|
m_degenerateSimplex = 5;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user