org.jbox2d.collision.shapes
Class Shape

java.lang.Object
  extended by 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 Summary
 float m_radius
           
 ShapeType m_type
           
 
Constructor Summary
Shape(ShapeType type)
           
 
Method Summary
abstract  Shape clone()
           
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 getChildCount()
          Get the number of child primitives
 float getRadius()
          The radius of the underlying shape.
 ShapeType getType()
          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 testPoint(Transform xf, Vec2 p)
          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 Detail

m_type

public final ShapeType m_type

m_radius

public float m_radius
Constructor Detail

Shape

public Shape(ShapeType type)
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 Object


Copyright © 2013. All Rights Reserved.