# b2PolygonShape Class Reference

`#include <b2PolygonShape.h>`

Inheritance diagram for b2PolygonShape:

List of all members.

## Public Member Functions
| b2PolygonShape ()
b2Shape * | Clone (b2BlockAllocator *allocator) const
| Implement b2Shape.
void | Set (const b2Vec2 *vertices, int32 vertexCount)
void | SetAsBox (float32 hx, float32 hy)
void | SetAsBox (float32 hx, float32 hy, const b2Vec2 &center, float32 angle)
void | SetAsEdge (const b2Vec2 &v1, const b2Vec2 &v2)
| Set this as a single edge.
bool | TestPoint (const b2Transform &transform, const b2Vec2 &p) const
bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform) const
| Implement b2Shape.
void | ComputeAABB (b2AABB *aabb, const b2Transform &transform) const
void | ComputeMass (b2MassData *massData, float32 density) const
int32 | GetSupport (const b2Vec2 &d) const
| Get the supporting vertex index in the given direction.
const b2Vec2 & | GetSupportVertex (const b2Vec2 &d) const
| Get the supporting vertex in the given direction.
int32 | GetVertexCount () const
| Get the vertex count.
const b2Vec2 & | GetVertex (int32 index) const
| Get a vertex by index.
## Public Attributes
b2Vec2 | m_centroid
b2Vec2 | m_vertices [b2_maxPolygonVertices]
b2Vec2 | m_normals [b2_maxPolygonVertices]
int32 | m_vertexCount

## Detailed Description

A convex polygon. It is assumed that the interior of the polygon is to the left of each edge.

## Constructor & Destructor Documentation

b2PolygonShape::b2PolygonShape | ( |  | ) | `[inline]`

## Member Function Documentation

b2Shape * b2PolygonShape::Clone | ( | b2BlockAllocator * | allocator | ) | const`[virtual]`

Implement b2Shape.

Implements b2Shape.

void b2PolygonShape::ComputeAABB | ( | b2AABB * | aabb,
|  | const b2Transform & | transform |
| ) |  |  | const`[virtual]`

See also:
  b2Shape::ComputeAABB

Implements b2Shape.

void b2PolygonShape::ComputeMass | ( | b2MassData * | massData,
|  | float32 | density |
| ) |  |  | const`[virtual]`

See also:
  b2Shape::ComputeMass

Implements b2Shape.

int32 b2PolygonShape::GetSupport | ( | const b2Vec2 & | d | ) | const`[inline]`

Get the supporting vertex index in the given direction.

const b2Vec2 & b2PolygonShape::GetSupportVertex | ( | const b2Vec2 & | d | ) | const`[inline]`

Get the supporting vertex in the given direction.

const b2Vec2 & b2PolygonShape::GetVertex | ( | int32 | index | ) | const`[inline]`

Get a vertex by index.

int32 b2PolygonShape::GetVertexCount | ( |  | ) | const`[inline]`

Get the vertex count.

bool b2PolygonShape::RayCast | ( | b2RayCastOutput * | output,
|  | const b2RayCastInput & | input,
|  | const b2Transform & | transform |
| ) |  |  | const`[virtual]`

Implement b2Shape.

Implements b2Shape.

void b2PolygonShape::Set | ( | const b2Vec2 * | vertices,
|  | int32 | vertexCount |
| ) |  |  |

Copy vertices. This assumes the vertices define a convex polygon. It is assumed that the exterior is the the right of each edge.

void b2PolygonShape::SetAsBox | ( | float32 | hx,
|  | float32 | hy,
|  | const b2Vec2 & | center,
|  | float32 | angle |
| ) |  |  |

Build vertices to represent an oriented box.

Parameters:

  | 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.

void b2PolygonShape::SetAsBox | ( | float32 | hx,
|  | float32 | hy |
| ) |  |  |

Build vertices to represent an axis-aligned box.

Parameters:

  | hx | the half-width.
  | hy | the half-height.

void b2PolygonShape::SetAsEdge | ( | const b2Vec2 & | v1,
|  | const b2Vec2 & | v2 |
| ) |  |  |

Set this as a single edge.

bool b2PolygonShape::TestPoint | ( | const b2Transform & | transform,
|  | const b2Vec2 & | p |
| ) |  |  | const`[virtual]`

See also:
  b2Shape::TestPoint

Implements b2Shape.

## Member Data Documentation

b2Vec2 b2PolygonShape::m_centroid

b2Vec2 b2PolygonShape::m_normals[b2_maxPolygonVertices]

int32 b2PolygonShape::m_vertexCount

b2Vec2 b2PolygonShape::m_vertices[b2_maxPolygonVertices]

The documentation for this class was generated from the following files:

- Box2D/Box2D/Collision/Shapes/b2PolygonShape.h
- Box2D/Box2D/Collision/Shapes/b2PolygonShape.cpp