Class Shape

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

public abstract class Shape extends java.lang.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 Summary

    Fields
    Modifier and Type
    Field
    Description
    float
     
    final ShapeType
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract Shape
     
    abstract void
    computeAABB(AABB aabb, Transform xf, int childIndex)
    Given a transform, compute the associated axis aligned bounding box for a child shape.
    abstract void
    computeMass(MassData massData, float density)
    Compute the mass properties of this shape using its dimensions and density.
    abstract int
    Get the number of child primitives
    float
    The radius of the underlying shape.
    Get the type of this shape.
    abstract boolean
    raycast(RayCastOutput output, RayCastInput input, Transform transform, int childIndex)
    Cast a ray against a child shape.
    void
    setRadius(float radius)
    Sets the radius of the underlying shape.
    abstract boolean
    Test a point for containment in this shape.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 java.lang.Object