Box2D 2.4.1
A 2D physics engine for games
|
#include <b2_polygon_shape.h>
Public Member Functions | |
b2Shape * | Clone (b2BlockAllocator *allocator) const override |
Implement b2Shape. More... | |
int32 | GetChildCount () const override |
void | Set (const b2Vec2 *points, int32 count) |
void | SetAsBox (float hx, float hy) |
void | SetAsBox (float hx, float hy, const b2Vec2 ¢er, float angle) |
bool | TestPoint (const b2Transform &transform, const b2Vec2 &p) const override |
bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const override |
void | ComputeAABB (b2AABB *aabb, const b2Transform &transform, int32 childIndex) const override |
void | ComputeMass (b2MassData *massData, float density) const override |
bool | Validate () const |
Public Member Functions inherited from b2Shape | |
virtual b2Shape * | Clone (b2BlockAllocator *allocator) const =0 |
Clone the concrete shape using the provided allocator. More... | |
Type | GetType () const |
virtual int32 | GetChildCount () const =0 |
Get the number of child primitives. More... | |
virtual bool | TestPoint (const b2Transform &xf, const b2Vec2 &p) const =0 |
virtual bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const =0 |
virtual void | ComputeAABB (b2AABB *aabb, const b2Transform &xf, int32 childIndex) const =0 |
virtual void | ComputeMass (b2MassData *massData, float density) const =0 |
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 |
float | 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 solid 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.
|
overridevirtual |
|
overridevirtual |
Implements b2Shape.
|
overridevirtual |
Implements b2Shape.
|
overridevirtual |
Implements b2Shape.
|
overridevirtual |
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 | ( | float | hx, |
float | 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 | ( | float | hx, |
float | hy, | ||
const b2Vec2 & | center, | ||
float | 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. |
|
overridevirtual |
Implements b2Shape.
bool b2PolygonShape::Validate | ( | ) | const |
Validate convexity. This is a very time consuming operation.