#include <b2Shape.h>
Public Types | |
enum | Type { e_circle = 0, e_edge = 1, e_polygon = 2, e_chain = 3, e_typeCount = 4 } |
Public Member Functions | |
virtual b2Shape * | Clone (b2BlockAllocator *allocator) const =0 |
Clone the concrete shape using the provided allocator. | |
virtual void | ComputeAABB (b2AABB *aabb, const b2Transform &xf, int32 childIndex) const =0 |
virtual void | ComputeMass (b2MassData *massData, float32 density) const =0 |
virtual int32 | GetChildCount () const =0 |
Get the number of child primitives. | |
Type | GetType () const |
virtual bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const =0 |
virtual bool | TestPoint (const b2Transform &xf, const b2Vec2 &p) const =0 |
virtual | ~b2Shape () |
Public Attributes | |
float32 | m_radius |
Type | m_type |
A shape is used for collision detection. You can create a shape however you like. Shapes used for simulation in b2World are created automatically when a b2Fixture is created. Shapes may encapsulate a one or more child shapes.
enum b2Shape::Type |
virtual b2Shape::~b2Shape | ( | ) | [inline, virtual] |
virtual b2Shape* b2Shape::Clone | ( | b2BlockAllocator * | allocator | ) | const [pure virtual] |
Clone the concrete shape using the provided allocator.
Implemented in b2ChainShape, b2EdgeShape, b2PolygonShape, and b2CircleShape.
virtual void b2Shape::ComputeAABB | ( | b2AABB * | aabb, |
const b2Transform & | xf, | ||
int32 | childIndex | ||
) | const [pure virtual] |
Given a transform, compute the associated axis aligned bounding box for a child shape.
aabb | returns the axis aligned box. |
xf | the world transform of the shape. |
childIndex | the child shape |
Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.
virtual void b2Shape::ComputeMass | ( | b2MassData * | massData, |
float32 | density | ||
) | const [pure virtual] |
Compute the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin.
massData | returns the mass data for this shape. |
density | the density in kilograms per meter squared. |
Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.
virtual int32 b2Shape::GetChildCount | ( | ) | const [pure virtual] |
Get the number of child primitives.
Implemented in b2ChainShape, b2EdgeShape, b2PolygonShape, and b2CircleShape.
b2Shape::Type b2Shape::GetType | ( | ) | const [inline] |
virtual bool b2Shape::RayCast | ( | b2RayCastOutput * | output, |
const b2RayCastInput & | input, | ||
const b2Transform & | transform, | ||
int32 | childIndex | ||
) | const [pure virtual] |
Cast a ray against a child shape.
output | the ray-cast results. |
input | the ray-cast input parameters. |
transform | the transform to be applied to the shape. |
childIndex | the child shape index |
Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.
virtual bool b2Shape::TestPoint | ( | const b2Transform & | xf, |
const b2Vec2 & | p | ||
) | const [pure virtual] |
Test a point for containment in this shape. This only works for convex shapes.
xf | the shape world transform. |
p | a point in world coordinates. |
Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.