Class Contact
java.lang.Object
org.jbox2d.dynamics.contacts.Contact
- Direct Known Subclasses:
ChainAndCircleContact, ChainAndPolygonContact, CircleContact, EdgeAndCircleContact, EdgeAndPolygonContact, PolygonAndCircleContact, PolygonContact
public abstract class Contact
extends java.lang.Object
The class manages contact between two shapes. A contact exists for each overlapping AABB in the
broad-phase (except if filtered). Therefore a contact object may exist that has no contact
points.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intintfloatintintfinal Manifoldfloatfloatfloatfloatprivate final Manifoldprotected final IWorldPoolstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidvoidFlag this contact for filtering.intintGet the first fixture in this contact.Get the second fixture in this contact.floatGet the contact manifold.getNext()Get the next contact in the world's contact list.floatfloatvoidgetWorldManifold(WorldManifold worldManifold) Get the world manifold.voidinitialization for poolingbooleanHas this contact been disabled?booleanIs this contact touchingstatic final floatmixFriction(float friction1, float friction2) Friction mixing law.static final floatmixRestitution(float restitution1, float restitution2) Restitution mixing law.voidvoidvoidsetEnabled(boolean flag) Enable/disable this contact.voidsetFriction(float friction) voidsetRestitution(float restitution) voidsetTangentSpeed(float speed) voidupdate(ContactListener listener) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
ISLAND_FLAG
public static final int ISLAND_FLAG- See Also:
-
TOUCHING_FLAG
public static final int TOUCHING_FLAG- See Also:
-
ENABLED_FLAG
public static final int ENABLED_FLAG- See Also:
-
FILTER_FLAG
public static final int FILTER_FLAG- See Also:
-
BULLET_HIT_FLAG
public static final int BULLET_HIT_FLAG- See Also:
-
TOI_FLAG
public static final int TOI_FLAG- See Also:
-
m_flags
public int m_flags -
m_prev
-
m_next
-
m_nodeA
-
m_nodeB
-
m_fixtureA
-
m_fixtureB
-
m_indexA
public int m_indexA -
m_indexB
public int m_indexB -
m_manifold
-
m_toiCount
public float m_toiCount -
m_toi
public float m_toi -
m_friction
public float m_friction -
m_restitution
public float m_restitution -
m_tangentSpeed
public float m_tangentSpeed -
pool
-
oldManifold
-
-
Constructor Details
-
Contact
-
-
Method Details
-
init
-
getManifold
Get the contact manifold. Do not set the point count to zero. Instead call Disable. -
getWorldManifold
Get the world manifold. -
isTouching
public boolean isTouching()Is this contact touching- Returns:
-
setEnabled
public void setEnabled(boolean flag) Enable/disable this contact. This can be used inside the pre-solve contact listener. The contact is only disabled for the current time step (or sub-step in continuous collisions).- Parameters:
flag-
-
isEnabled
public boolean isEnabled()Has this contact been disabled?- Returns:
-
getNext
-
getFixtureA
-
getChildIndexA
public int getChildIndexA() -
getFixtureB
-
getChildIndexB
public int getChildIndexB() -
setFriction
public void setFriction(float friction) -
getFriction
public float getFriction() -
resetFriction
public void resetFriction() -
setRestitution
public void setRestitution(float restitution) -
getRestitution
public float getRestitution() -
resetRestitution
public void resetRestitution() -
setTangentSpeed
public void setTangentSpeed(float speed) -
getTangentSpeed
public float getTangentSpeed() -
evaluate
-
flagForFiltering
public void flagForFiltering()Flag this contact for filtering. Filtering will occur the next time step. -
update
-
mixFriction
public static final float mixFriction(float friction1, float friction2) Friction mixing law. The idea is to allow either fixture to drive the restitution to zero. For example, anything slides on ice.- Parameters:
friction1-friction2-- Returns:
-
mixRestitution
public static final float mixRestitution(float restitution1, float restitution2) Restitution mixing law. The idea is allow for anything to bounce off an inelastic surface. For example, a superball bounces on anything.- Parameters:
restitution1-restitution2-- Returns:
-