Class Shape

java.lang.Object
org.jbox2d.collision.shapes.Shape
Direct Known Subclasses:
ChainShape, CircleShape, EdgeShape, PolygonShape

public abstract class Shape extends Object
A shape is used for collision detection. You can create a shape however you like. Shapes used for simulation in World are created automatically when a Fixture is created. Shapes may encapsulate a one or more child shapes.
  • Field Details

    • m_type

      public final ShapeType m_type
    • m_radius

      public float m_radius
  • Constructor Details

  • Method Details

    • getType

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

      public float getRadius()
      The radius of the underlying shape. This can refer to different things depending on the shape implementation
      Returns:
    • setRadius

      public void setRadius(float radius)
      Sets the radius of the underlying shape. This can refer to different things depending on the implementation
      Parameters:
      radius -
    • getChildCount

      public abstract int getChildCount()
      Get the number of child primitives
      Returns:
    • testPoint

      public abstract boolean testPoint(Transform xf, Vec2 p)
      Test a point for containment in this shape. This only works for convex shapes.
      Parameters:
      xf - the shape world transform.
      p - a point in world coordinates.
    • raycast

      public abstract boolean raycast(RayCastOutput output, RayCastInput input, Transform transform, int childIndex)
      Cast a ray against a child shape.
      Parameters:
      argOutput - the ray-cast results.
      argInput - the ray-cast input parameters.
      argTransform - the transform to be applied to the shape.
      argChildIndex - the child shape index
      Returns:
      if hit
    • computeAABB

      public abstract void computeAABB(AABB aabb, Transform xf, int childIndex)
      Given a transform, compute the associated axis aligned bounding box for a child shape.
      Parameters:
      argAabb - returns the axis aligned box.
      argXf - the world transform of the shape.
    • computeMass

      public abstract void computeMass(MassData massData, float density)
      Compute the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin.
      Parameters:
      massData - returns the mass data for this shape.
      density - the density in kilograms per meter squared.
    • clone

      public abstract Shape clone()
      Overrides:
      clone in class Object