Box2D: b2ChainShape Class Reference

| Box2D 2.4.1 A 2D physics engine for games

Public Member Functions | Public Attributes | List of all members
b2ChainShape Class Reference

`#include <b2_chain_shape.h>`

Inheritance diagram for b2ChainShape:

## Public Member Functions
| ~b2ChainShape ()
| The destructor frees the vertices using b2Free.
void | Clear ()
| Clear all data.
void | CreateLoop (const b2Vec2 *vertices, int32 count)
void | CreateChain (const b2Vec2 *vertices, int32 count, const b2Vec2 &prevVertex, const b2Vec2 &nextVertex)
b2Shape * | Clone (b2BlockAllocator *allocator) const override
| Implement b2Shape. Vertices are cloned using b2Alloc.
int32 | GetChildCount () const override
void | GetChildEdge (b2EdgeShape *edge, int32 index) const
| Get a child edge.
bool | TestPoint (const b2Transform &transform, const b2Vec2 &p) const override
bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const override
| Implement b2Shape.
void | ComputeAABB (b2AABB *aabb, const b2Transform &transform, int32 childIndex) const override
void | ComputeMass (b2MassData *massData, float density) const override
Public Member Functions inherited from b2Shape
Type | GetType () const

## Public Attributes
b2Vec2 * | m_vertices
| The vertices. Owned by this class.
int32 | m_count
| The vertex count.
b2Vec2 | m_prevVertex
b2Vec2 | m_nextVertex
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 }

## Detailed Description

A chain shape is a free form sequence of line segments. The chain has one-sided collision, with the surface normal pointing to the right of the edge. This provides a counter-clockwise winding like the polygon shape. Connectivity information is used to create smooth collisions.

Warning
  the chain will not collide properly if there are self-intersections.

## Member Function Documentation

## ◆ ComputeAABB()

void b2ChainShape::ComputeAABB | ( | b2AABB * | aabb,
|  | const b2Transform & | transform,
|  | int32 | childIndex
| ) |  | const
| overridevirtual

See also
  b2Shape::ComputeAABB

Implements b2Shape.

## ◆ ComputeMass()

void b2ChainShape::ComputeMass | ( | b2MassData * | massData,
|  | float | density
| ) |  | const
| overridevirtual

Chains have zero mass.

See also
  b2Shape::ComputeMass

Implements b2Shape.

## ◆ CreateChain()

void b2ChainShape::CreateChain | ( | const b2Vec2 * | vertices,
|  | int32 | count,
|  | const b2Vec2 & | prevVertex,
|  | const b2Vec2 & | nextVertex
| ) |  |

Create a chain with ghost vertices to connect multiple chains together.

Parameters

  vertices | an array of vertices, these are copied
  count | the vertex count
  prevVertex | previous vertex from chain that connects to the start
  nextVertex | next vertex from chain that connects to the end

## ◆ CreateLoop()

void b2ChainShape::CreateLoop | ( | const b2Vec2 * | vertices,
|  | int32 | count
| ) |  |

Create a loop. This automatically adjusts connectivity.

Parameters

  vertices | an array of vertices, these are copied
  count | the vertex count

## ◆ GetChildCount()

int32 b2ChainShape::GetChildCount | ( |  | ) | const
| overridevirtual

See also
  b2Shape::GetChildCount

Implements b2Shape.

## ◆ TestPoint()

bool b2ChainShape::TestPoint | ( | const b2Transform & | transform,
|  | const b2Vec2 & | p
| ) |  | const
| overridevirtual

This always return false.

See also
  b2Shape::TestPoint

Implements b2Shape.

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

- /build/box2d/src/box2d-2.4.1/include/box2d/b2_chain_shape.h