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

      • m_radius

        public float m_radius
    • Constructor Detail

    • Method Detail

      • 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