Package org.jbox2d.collision.shapes
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.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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 primitivesfloat
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.
-
-
-
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 classjava.lang.Object
-
-