Package org.jbox2d.dynamics.contacts
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 int
static final int
static final int
static final int
int
float
int
int
final Manifold
float
float
float
float
private final Manifold
protected final IWorldPool
static final int
static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void
void
Flag this contact for filtering.int
int
Get the first fixture in this contact.Get the second fixture in this contact.float
Get the contact manifold.getNext()
Get the next contact in the world's contact list.float
float
void
getWorldManifold
(WorldManifold worldManifold) Get the world manifold.void
initialization for poolingboolean
Has this contact been disabled?boolean
Is this contact touchingstatic final float
mixFriction
(float friction1, float friction2) Friction mixing law.static final float
mixRestitution
(float restitution1, float restitution2) Restitution mixing law.void
void
void
setEnabled
(boolean flag) Enable/disable this contact.void
setFriction
(float friction) void
setRestitution
(float restitution) void
setTangentSpeed
(float speed) void
update
(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
initialization for pooling -
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
Get the next contact in the world's contact list.- Returns:
-
getFixtureA
Get the first fixture in this contact.- Returns:
-
getChildIndexA
public int getChildIndexA() -
getFixtureB
Get the second fixture in this contact.- Returns:
-
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:
-