public class SequentialImpulseConstraintSolver extends ConstraintSolver
Although Sequential Impulse is more intuitive, it is mathematically equivalent to Projected Successive Overrelaxation (iterative LCP).
Applies impulses for combined restitution and penetration recovery and to simulate friction.
| Constructor and Description |
|---|
SequentialImpulseConstraintSolver() |
| Modifier and Type | Method and Description |
|---|---|
long |
getRandSeed() |
long |
rand2() |
int |
randInt2(int n) |
void |
reset()
Clear internal cached data and reset random seed.
|
void |
setContactSolverFunc(ContactSolverFunc func,
int type0,
int type1)
Advanced: Override the default contact solving function for contacts, for certain types of rigidbody
See RigidBody.contactSolverType and RigidBody.frictionSolverType |
void |
setFrictionSolverFunc(ContactSolverFunc func,
int type0,
int type1)
Advanced: Override the default friction solving function for contacts, for certain types of rigidbody
See RigidBody.contactSolverType and RigidBody.frictionSolverType |
void |
setRandSeed(long seed) |
float |
solveCombinedContactFriction(RigidBody body0,
RigidBody body1,
ManifoldPoint cp,
ContactSolverInfo info,
int iter,
IDebugDraw debugDrawer) |
float |
solveGroup(ObjectArrayList<CollisionObject> bodies,
int numBodies,
ObjectArrayList<PersistentManifold> manifoldPtr,
int manifold_offset,
int numManifolds,
ObjectArrayList<TypedConstraint> constraints,
int constraints_offset,
int numConstraints,
ContactSolverInfo infoGlobal,
IDebugDraw debugDrawer,
Dispatcher dispatcher)
Sequentially applies impulses.
|
float |
solveGroupCacheFriendly(ObjectArrayList<CollisionObject> bodies,
int numBodies,
ObjectArrayList<PersistentManifold> manifoldPtr,
int manifold_offset,
int numManifolds,
ObjectArrayList<TypedConstraint> constraints,
int constraints_offset,
int numConstraints,
ContactSolverInfo infoGlobal,
IDebugDraw debugDrawer) |
float |
solveGroupCacheFriendlyIterations(ObjectArrayList<CollisionObject> bodies,
int numBodies,
ObjectArrayList<PersistentManifold> manifoldPtr,
int manifold_offset,
int numManifolds,
ObjectArrayList<TypedConstraint> constraints,
int constraints_offset,
int numConstraints,
ContactSolverInfo infoGlobal,
IDebugDraw debugDrawer) |
float |
solveGroupCacheFriendlySetup(ObjectArrayList<CollisionObject> bodies,
int numBodies,
ObjectArrayList<PersistentManifold> manifoldPtr,
int manifold_offset,
int numManifolds,
ObjectArrayList<TypedConstraint> constraints,
int constraints_offset,
int numConstraints,
ContactSolverInfo infoGlobal,
IDebugDraw debugDrawer) |
allSolved, prepareSolvepublic long rand2()
public int randInt2(int n)
public float solveGroupCacheFriendlySetup(ObjectArrayList<CollisionObject> bodies, int numBodies, ObjectArrayList<PersistentManifold> manifoldPtr, int manifold_offset, int numManifolds, ObjectArrayList<TypedConstraint> constraints, int constraints_offset, int numConstraints, ContactSolverInfo infoGlobal, IDebugDraw debugDrawer)
public float solveGroupCacheFriendlyIterations(ObjectArrayList<CollisionObject> bodies, int numBodies, ObjectArrayList<PersistentManifold> manifoldPtr, int manifold_offset, int numManifolds, ObjectArrayList<TypedConstraint> constraints, int constraints_offset, int numConstraints, ContactSolverInfo infoGlobal, IDebugDraw debugDrawer)
public float solveGroupCacheFriendly(ObjectArrayList<CollisionObject> bodies, int numBodies, ObjectArrayList<PersistentManifold> manifoldPtr, int manifold_offset, int numManifolds, ObjectArrayList<TypedConstraint> constraints, int constraints_offset, int numConstraints, ContactSolverInfo infoGlobal, IDebugDraw debugDrawer)
public float solveGroup(ObjectArrayList<CollisionObject> bodies, int numBodies, ObjectArrayList<PersistentManifold> manifoldPtr, int manifold_offset, int numManifolds, ObjectArrayList<TypedConstraint> constraints, int constraints_offset, int numConstraints, ContactSolverInfo infoGlobal, IDebugDraw debugDrawer, Dispatcher dispatcher)
solveGroup in class ConstraintSolverpublic float solveCombinedContactFriction(RigidBody body0, RigidBody body1, ManifoldPoint cp, ContactSolverInfo info, int iter, IDebugDraw debugDrawer)
public void reset()
ConstraintSolverreset in class ConstraintSolverpublic void setContactSolverFunc(ContactSolverFunc func, int type0, int type1)
public void setFrictionSolverFunc(ContactSolverFunc func, int type0, int type1)
public void setRandSeed(long seed)
public long getRandSeed()