|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.bulletphysics.dynamics.constraintsolver.ConstraintSolver com.bulletphysics.dynamics.constraintsolver.SequentialImpulseConstraintSolver
public class SequentialImpulseConstraintSolver
SequentialImpulseConstraintSolver uses a Propagation Method and Sequentially applies impulses. The approach is the 3D version of Erin Catto's GDC 2006 tutorial. See http://www.gphysics.com
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 Summary | |
---|---|
SequentialImpulseConstraintSolver()
|
Method Summary | |
---|---|
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)
|
Methods inherited from class com.bulletphysics.dynamics.constraintsolver.ConstraintSolver |
---|
allSolved, prepareSolve |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SequentialImpulseConstraintSolver()
Method Detail |
---|
public 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 ConstraintSolver
public float solveCombinedContactFriction(RigidBody body0, RigidBody body1, ManifoldPoint cp, ContactSolverInfo info, int iter, IDebugDraw debugDrawer)
public void reset()
ConstraintSolver
reset
in class ConstraintSolver
public 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()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |