+ improved KinematicCharacterController
+ improved btSubsimplexConvexCast, btContinuousConvexCollision and btGjkConvexCast to support configuration that start in touching/penetration, required for 'sliding'. + added files to CMakeLists.txt for CharacterController + bump up version to 2.70 (preparation for beta)
This commit is contained in:
@@ -119,6 +119,8 @@ bool btSubsimplexConvexCast::calcTimeOfImpact(
|
||||
{
|
||||
dist2 = v.length2();
|
||||
hasResult = true;
|
||||
//todo: check this normal for validity
|
||||
n=v;
|
||||
//printf("V=%f , %f, %f\n",v[0],v[1],v[2]);
|
||||
//printf("DIST2=%f\n",dist2);
|
||||
//printf("numverts = %i\n",m_simplexSolver->numVertices());
|
||||
@@ -130,8 +132,17 @@ bool btSubsimplexConvexCast::calcTimeOfImpact(
|
||||
|
||||
//int numiter = MAX_ITERATIONS - maxIter;
|
||||
// printf("number of iterations: %d", numiter);
|
||||
|
||||
//don't report a time of impact when moving 'away' from the hitnormal
|
||||
|
||||
|
||||
result.m_fraction = lambda;
|
||||
result.m_normal = n.normalized();
|
||||
|
||||
//don't report time of impact for motion away from the contact normal (or causes minor penetration)
|
||||
if (result.m_normal.dot(r)>=-result.m_allowedPenetration)
|
||||
return false;
|
||||
|
||||
btVector3 hitA,hitB;
|
||||
m_simplexSolver->compute_points(hitA,hitB);
|
||||
result.m_hitPoint=hitB;
|
||||
|
||||
Reference in New Issue
Block a user