LiquidFun
 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
virtual
See Also
b2Shape::ComputeAABB

Implements b2Shape.

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

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

Parameters
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
virtual
See Also
b2Shape::ComputeMass

Implements b2Shape.

int32 b2PolygonShape::GetChildCount ( ) const
virtual
See Also
b2Shape::GetChildCount

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

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

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

Parameters
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
virtual
See Also
b2Shape::TestPoint

Implements b2Shape.

bool b2PolygonShape::Validate ( ) const

Validate convexity. This is a very time consuming operation.

Returns
true if valid

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