diff --git a/src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp b/src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp index d11764346..1f4015c7c 100644 --- a/src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp +++ b/src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp @@ -23,7 +23,10 @@ subject to the following restrictions: #include "btLemkeAlgorithm.h" - +#undef BT_DEBUG_OSTREAM +#ifdef BT_DEBUG_OSTREAM +using namespace std; +#endif //BT_DEBUG_OSTREAM btScalar btMachEps() { diff --git a/src/BulletDynamics/MLCPSolvers/btLemkeSolver.h b/src/BulletDynamics/MLCPSolvers/btLemkeSolver.h index e1de4cf48..177559569 100644 --- a/src/BulletDynamics/MLCPSolvers/btLemkeSolver.h +++ b/src/BulletDynamics/MLCPSolvers/btLemkeSolver.h @@ -22,34 +22,178 @@ subject to the following restrictions: #include "btLemkeAlgorithm.h" + +#ifdef BT_DEBUG_OSTREAM +using namespace std; +#endif //BT_DEBUG_OSTREAM + class btLemkeSolver : public btMLCPSolverInterface { public: virtual bool solveMLCP(const btMatrixXu & A, const btVectorXu & b, btVectorXu& x, const btVectorXu & lo,const btVectorXu & hi,const btAlignedObjectArray& limitDependency, int numIterations, bool useSparsity = true) { - int dimension = A.rows(); - if (0==dimension) + int n = A.rows(); + if (0==n) return true; // printf("================ solving using Lemke/Newton/Fixpoint\n"); - btVectorXu q; - q.resize(dimension); - for (int row=0;row