#include <b2PolygonShape.h>
Inherits b2Shape.
Public Member Functions | |
b2Shape * | Clone (b2BlockAllocator *allocator) const |
Implement b2Shape. | |
int32 | GetChildCount () const |
void | Set (const b2Vec2 *points, int32 count) |
void | SetAsBox (float32 hx, float32 hy) |
void | SetAsBox (float32 hx, float32 hy, const b2Vec2 ¢er, float32 angle) |
bool | TestPoint (const b2Transform &transform, const b2Vec2 &p) const |
void | ComputeDistance (const b2Transform &xf, const b2Vec2 &p, float32 *distance, b2Vec2 *normal, int32 childIndex) const |
bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const |
Implement b2Shape. | |
void | ComputeAABB (b2AABB *aabb, const b2Transform &transform, int32 childIndex) const |
void | ComputeMass (b2MassData *massData, float32 density) const |
int32 | GetVertexCount () const |
Get the vertex count. | |
const b2Vec2 & | GetVertex (int32 index) const |
Get a vertex by index. | |
bool | Validate () const |
Public Member Functions inherited from b2Shape | |
Type | GetType () const |
Public Attributes | |
b2Vec2 | m_centroid |
b2Vec2 | m_vertices [b2_maxPolygonVertices] |
b2Vec2 | m_normals [b2_maxPolygonVertices] |
int32 | m_count |
Public Attributes inherited from b2Shape | |
Type | m_type |
float32 | m_radius |
Additional Inherited Members | |
Public Types inherited from b2Shape | |
enum | Type { e_circle = 0, e_edge = 1, e_polygon = 2, e_chain = 3, e_typeCount = 4 } |
A convex polygon. It is assumed that the interior of the polygon is to the left of each edge. Polygons have a maximum number of vertices equal to b2_maxPolygonVertices. In most cases you should not need many vertices for a convex polygon.
|
virtual |
Implements b2Shape.
|
virtual |
Compute the distance from the current shape to the specified point. This only works for convex shapes.
xf | the shape world transform. |
p | a point in world coordinates. |
distance | returns the distance from the current shape. |
normal | returns the direction in which the distance increases. |
Implements b2Shape.
|
virtual |
Implements b2Shape.
|
virtual |
Implements b2Shape.
void b2PolygonShape::Set | ( | const b2Vec2 * | points, |
int32 | count | ||
) |
Create a convex hull from the given array of local points. The count must be in the range [3, b2_maxPolygonVertices].
void b2PolygonShape::SetAsBox | ( | float32 | hx, |
float32 | hy | ||
) |
Build vertices to represent an axis-aligned box centered on the local origin.
hx | the half-width. |
hy | the half-height. |
void b2PolygonShape::SetAsBox | ( | float32 | hx, |
float32 | hy, | ||
const b2Vec2 & | center, | ||
float32 | angle | ||
) |
Build vertices to represent an oriented box.
hx | the half-width. |
hy | the half-height. |
center | the center of the box in local coordinates. |
angle | the rotation of the box in local coordinates. |
|
virtual |
Implements b2Shape.
bool b2PolygonShape::Validate | ( | ) | const |
Validate convexity. This is a very time consuming operation.