From 99acea9594f99c38466045be0184a69e162e8280 Mon Sep 17 00:00:00 2001 From: d3x0r Date: Sun, 8 Nov 2015 10:22:02 -0800 Subject: [PATCH 1/2] btVoronoiSimplexSolver::inSimplex can return when first 'found=true' is set instead of going through all points, since found is never set to false in any other condition. PersistentManifold replaceContactPoint set the same values for m_appliedImpluse; remove redunant set. --- .../NarrowPhaseCollision/btPersistentManifold.h | 4 ---- .../NarrowPhaseCollision/btVoronoiSimplexSolver.cpp | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h b/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h index 2ceaab750..5026397f6 100644 --- a/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h +++ b/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h @@ -196,10 +196,6 @@ public: m_pointCache[insertIndex].m_appliedImpulseLateral1 = appliedLateralImpulse1; m_pointCache[insertIndex].m_appliedImpulseLateral2 = appliedLateralImpulse2; - m_pointCache[insertIndex].m_appliedImpulse = appliedImpulse; - m_pointCache[insertIndex].m_appliedImpulseLateral1 = appliedLateralImpulse1; - m_pointCache[insertIndex].m_appliedImpulseLateral2 = appliedLateralImpulse2; - m_pointCache[insertIndex].m_lifeTime = lifeTime; #else diff --git a/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp b/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp index a775198ab..ea4ef5e81 100644 --- a/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp +++ b/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp @@ -294,7 +294,10 @@ bool btVoronoiSimplexSolver::inSimplex(const btVector3& w) #else if (m_simplexVectorW[i] == w) #endif + { found = true; + break; + } } //check in case lastW is already removed From 08eb947bac62cc26ccd969a7e45a49d1e869c1df Mon Sep 17 00:00:00 2001 From: d3x0r Date: Sun, 8 Nov 2015 10:24:16 -0800 Subject: [PATCH 2/2] Format fix. --- .../NarrowPhaseCollision/btVoronoiSimplexSolver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp b/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp index ea4ef5e81..23b4f79cf 100644 --- a/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp +++ b/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp @@ -296,7 +296,7 @@ bool btVoronoiSimplexSolver::inSimplex(const btVector3& w) #endif { found = true; - break; + break; } }