All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Public Attributes | List of all members
b2PolygonShape Class Reference

#include <b2PolygonShape.h>

Inherits b2Shape.

Public Member Functions

b2ShapeClone (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 &center, 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 b2Vec2GetVertex (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

Detailed Description

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.

Member Function Documentation

void b2PolygonShape::ComputeAABB ( b2AABB aabb,
const b2Transform transform,
int32  childIndex 
) const
See Also

Implements b2Shape.

void b2PolygonShape::ComputeDistance ( const b2Transform xf,
const b2Vec2 p,
float32 *  distance,
b2Vec2 normal,
int32  childIndex 
) const

Compute the distance from the current shape to the specified point. This only works for convex shapes.

xfthe shape world transform.
pa point in world coordinates.
distancereturns the distance from the current shape.
normalreturns the direction in which the distance increases.

Implements b2Shape.

void b2PolygonShape::ComputeMass ( b2MassData massData,
float32  density 
) const
See Also

Implements b2Shape.

int32 b2PolygonShape::GetChildCount ( ) const
See Also

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

the points may be re-ordered, even if they form a convex polygon
collinear points are handled but not removed. Collinear points may lead to poor stacking behavior.
void b2PolygonShape::SetAsBox ( float32  hx,
float32  hy 

Build vertices to represent an axis-aligned box centered on the local origin.

hxthe half-width.
hythe half-height.
void b2PolygonShape::SetAsBox ( float32  hx,
float32  hy,
const b2Vec2 center,
float32  angle 

Build vertices to represent an oriented box.

hxthe half-width.
hythe half-height.
centerthe center of the box in local coordinates.
anglethe rotation of the box in local coordinates.
bool b2PolygonShape::TestPoint ( const b2Transform transform,
const b2Vec2 p 
) const
See Also

Implements b2Shape.

bool b2PolygonShape::Validate ( ) const

Validate convexity. This is a very time consuming operation.

true if valid

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