void btDiscreteDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo)
sortedConstraints.heapSort(btAlignedObjectArray<btTypedConstraint*>::less()); should be sortedConstraints.heapSort(btSortConstraintOnIslandPredicate); Thanks Clemens Unterkofler for pointing this out!
This commit is contained in:
@@ -401,13 +401,21 @@ inline int btGetConstraintIslandId(const btTypedConstraint* lhs)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool btSortConstraintOnIslandPredicate(const btTypedConstraint* lhs, const btTypedConstraint* rhs)
|
|
||||||
|
class btSortConstraintOnIslandPredicate
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
bool operator() ( const btTypedConstraint* lhs, const btTypedConstraint* rhs )
|
||||||
|
{
|
||||||
int rIslandId0,lIslandId0;
|
int rIslandId0,lIslandId0;
|
||||||
rIslandId0 = btGetConstraintIslandId(rhs);
|
rIslandId0 = btGetConstraintIslandId(rhs);
|
||||||
lIslandId0 = btGetConstraintIslandId(lhs);
|
lIslandId0 = btGetConstraintIslandId(lhs);
|
||||||
return lIslandId0 < rIslandId0;
|
return lIslandId0 < rIslandId0;
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void btDiscreteDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo)
|
void btDiscreteDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo)
|
||||||
@@ -485,9 +493,7 @@ void btDiscreteDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
sortedConstraints.heapSort(btAlignedObjectArray<btTypedConstraint*>::less());
|
sortedConstraints.heapSort(btSortConstraintOnIslandPredicate());
|
||||||
//std::sort(sortedConstraints.begin(),sortedConstraints.end(),btSortConstraintOnIslandPredicate);
|
|
||||||
|
|
||||||
|
|
||||||
btTypedConstraint** constraintsPtr = getNumConstraints() ? &sortedConstraints[0] : 0;
|
btTypedConstraint** constraintsPtr = getNumConstraints() ? &sortedConstraints[0] : 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user