Class Fixture
java.lang.Object
org.jbox2d.dynamics.Fixture
public class Fixture
extends java.lang.Object
A fixture is used to attach a shape to a body for collision detection. A fixture inherits its
transform from its parent. Fixtures hold additional non-geometric data such as friction,
collision filters, etc. Fixtures are created via Body::CreateFixture.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcreate(Body body, FixtureDef def) voidcreateProxies(BroadPhase broadPhase, Transform xf) voiddestroy()voiddestroyProxies(BroadPhase broadPhase) Internal methodvoiddump(int bodyIndex) Dump this fixture to the log file.getAABB(int childIndex) Get the fixture's AABB.getBody()Get the parent body of this fixture.floatGet the contact filtering data.floatGet the coefficient of friction.voidgetMassData(MassData massData) Get the mass data for this fixture.getNext()Get the next fixture in the parent body's fixture list.floatGet the coefficient of restitution.getShape()Get the child shape.getType()Get the type of the child shape.java.lang.ObjectGet the user data that was assigned in the fixture definition.booleanisSensor()Is this fixture a sensor (non-solid)?booleanraycast(RayCastOutput output, RayCastInput input, int childIndex) Cast a ray against this shape.voidrefilter()Call this if you want to establish collision that was previously disabled by ContactFilter::ShouldCollide.voidsetDensity(float density) voidsetFilterData(Filter filter) Set the contact filtering data.voidsetFriction(float friction) Set the coefficient of friction.voidsetRestitution(float restitution) Set the coefficient of restitution.voidsetSensor(boolean sensor) Set if this fixture is a sensor.voidsetUserData(java.lang.Object data) Set the user data.protected voidsynchronize(BroadPhase broadPhase, Transform transform1, Transform transform2) Internal methodbooleanTest a point for containment in this fixture.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
m_density
public float m_density -
m_next
-
m_body
-
m_shape
-
m_friction
public float m_friction -
m_restitution
public float m_restitution -
m_proxies
-
m_proxyCount
public int m_proxyCount -
m_filter
-
m_isSensor
public boolean m_isSensor -
m_userData
public java.lang.Object m_userData -
pool1
-
pool2
-
displacement
-
-
Constructor Details
-
Fixture
public Fixture()
-
-
Method Details
-
getType
Get the type of the child shape. You can use this to down cast to the concrete shape.- Returns:
- the shape type.
-
getShape
Get the child shape. You can modify the child shape, however you should not change the number of vertices because this will crash some collision caching mechanisms.- Returns:
-
isSensor
public boolean isSensor()Is this fixture a sensor (non-solid)?- Returns:
- the true if the shape is a sensor.
-
setSensor
public void setSensor(boolean sensor) Set if this fixture is a sensor.- Parameters:
sensor-
-
setFilterData
Set the contact filtering data. This is an expensive operation and should not be called frequently. This will not update contacts until the next time step when either parent body is awake. This automatically calls refilter.- Parameters:
filter-
-
getFilterData
-
refilter
public void refilter()Call this if you want to establish collision that was previously disabled by ContactFilter::ShouldCollide. -
getBody
Get the parent body of this fixture. This is NULL if the fixture is not attached.- Returns:
- the parent body.
-
getNext
Get the next fixture in the parent body's fixture list.- Returns:
- the next shape.
-
setDensity
public void setDensity(float density) -
getDensity
public float getDensity() -
getUserData
public java.lang.Object getUserData()Get the user data that was assigned in the fixture definition. Use this to store your application specific data.- Returns:
-
setUserData
public void setUserData(java.lang.Object data) Set the user data. Use this to store your application specific data.- Parameters:
data-
-
testPoint
Test a point for containment in this fixture. This only works for convex shapes.- Parameters:
p- a point in world coordinates.- Returns:
-
raycast
Cast a ray against this shape.- Parameters:
output- the ray-cast results.input- the ray-cast input parameters.output-input-
-
getMassData
Get the mass data for this fixture. The mass data is based on the density and the shape. The rotational inertia is about the shape's origin. -
getFriction
public float getFriction()Get the coefficient of friction.- Returns:
-
setFriction
public void setFriction(float friction) Set the coefficient of friction. This will _not_ change the friction of existing contacts.- Parameters:
friction-
-
getRestitution
public float getRestitution()Get the coefficient of restitution.- Returns:
-
setRestitution
public void setRestitution(float restitution) Set the coefficient of restitution. This will _not_ change the restitution of existing contacts.- Parameters:
restitution-
-
getAABB
Get the fixture's AABB. This AABB may be enlarge and/or stale. If you need a more accurate AABB, compute it using the shape and the body transform.- Returns:
-
dump
public void dump(int bodyIndex) Dump this fixture to the log file.- Parameters:
bodyIndex-
-
create
-
destroy
public void destroy() -
createProxies
-
destroyProxies
-
synchronize
Internal method- Parameters:
broadPhase-xf1-xf2-
-