Package org.jbox2d.dynamics
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 TypeMethodDescriptionvoid
create
(Body body, FixtureDef def) void
createProxies
(BroadPhase broadPhase, Transform xf) void
destroy()
void
destroyProxies
(BroadPhase broadPhase) Internal methodvoid
dump
(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.float
Get the contact filtering data.float
Get the coefficient of friction.void
getMassData
(MassData massData) Get the mass data for this fixture.getNext()
Get the next fixture in the parent body's fixture list.float
Get the coefficient of restitution.getShape()
Get the child shape.getType()
Get the type of the child shape.java.lang.Object
Get the user data that was assigned in the fixture definition.boolean
isSensor()
Is this fixture a sensor (non-solid)?boolean
raycast
(RayCastOutput output, RayCastInput input, int childIndex) Cast a ray against this shape.void
refilter()
Call this if you want to establish collision that was previously disabled by ContactFilter::ShouldCollide.void
setDensity
(float density) void
setFilterData
(Filter filter) Set the contact filtering data.void
setFriction
(float friction) Set the coefficient of friction.void
setRestitution
(float restitution) Set the coefficient of restitution.void
setSensor
(boolean sensor) Set if this fixture is a sensor.void
setUserData
(java.lang.Object data) Set the user data.protected void
synchronize
(BroadPhase broadPhase, Transform transform1, Transform transform2) Internal methodboolean
Test 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
Get the contact filtering data.- Returns:
-
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
Internal method- Parameters:
broadPhase
-
-
synchronize
Internal method- Parameters:
broadPhase
-xf1
-xf2
-
-