public SequentialImpulseConstraintSolver() { _solverMode = SolverMode.RandomizeOrder | SolverMode.CacheFriendly; PersistentManifold.ContactDestroyedCallback = MyContactDestroyedCallback; //initialize default friction/contact funcs int i, j; for (i = 0; i < (int)ContactSolverType.MaxContactSolverType; i++) for (j = 0; j < (int)ContactSolverType.MaxContactSolverType; j++) { _contactDispatch[i, j] = ContactConstraint.ResolveSingleCollision; _frictionDispatch[i, j] = ContactConstraint.ResolveSingleFriction; } }
public SequentialImpulseConstraintSolver() { _solverMode = SolverMode.RandomizeOrder | SolverMode.CacheFriendly; PersistentManifold.ContactDestroyedCallback = MyContactDestroyedCallback; //initialize default friction/contact funcs int i, j; for (i = 0; i < (int)ContactSolverType.MaxContactSolverType; i++) { for (j = 0; j < (int)ContactSolverType.MaxContactSolverType; j++) { _contactDispatch[i, j] = ContactConstraint.ResolveSingleCollision; _frictionDispatch[i, j] = ContactConstraint.ResolveSingleFriction; } } }
public static bool TestSolverMode(SolverMode val1, SolverMode val2) { return (val1 & val2) == val2; }