Class 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 Detail

      • m_density

        public float m_density
      • m_body

        public Body m_body
      • m_shape

        public Shape m_shape
      • m_friction

        public float m_friction
      • m_restitution

        public float m_restitution
      • m_proxyCount

        public int m_proxyCount
      • m_filter

        public final Filter m_filter
      • m_isSensor

        public boolean m_isSensor
      • m_userData

        public java.lang.Object m_userData
      • pool1

        private final AABB pool1
      • pool2

        private final AABB pool2
      • displacement

        private final Vec2 displacement
    • Constructor Detail

      • Fixture

        public Fixture()
    • Method Detail

      • getType

        public ShapeType getType()
        Get the type of the child shape. You can use this to down cast to the concrete shape.
        Returns:
        the shape type.
      • getShape

        public Shape 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

        public void setFilterData​(Filter filter)
        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

        public 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

        public Body getBody()
        Get the parent body of this fixture. This is NULL if the fixture is not attached.
        Returns:
        the parent body.
      • getNext

        public Fixture 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

        public boolean testPoint​(Vec2 p)
        Test a point for containment in this fixture. This only works for convex shapes.
        Parameters:
        p - a point in world coordinates.
        Returns:
      • raycast

        public boolean raycast​(RayCastOutput output,
                               RayCastInput input,
                               int childIndex)
        Cast a ray against this shape.
        Parameters:
        output - the ray-cast results.
        input - the ray-cast input parameters.
        output -
        input -
      • getMassData

        public void getMassData​(MassData massData)
        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

        public AABB getAABB​(int childIndex)
        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 -
      • destroy

        public void destroy()
      • destroyProxies

        public void destroyProxies​(BroadPhase broadPhase)
        Internal method
        Parameters:
        broadPhase -
      • synchronize

        protected void synchronize​(BroadPhase broadPhase,
                                   Transform transform1,
                                   Transform transform2)
        Internal method
        Parameters:
        broadPhase -
        xf1 -
        xf2 -