Box2D  2.4.1
A 2D physics engine for games
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)
b2ShapeClone (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

 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.

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
See also

Implements b2Shape.

◆ ComputeMass()

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

Chains have zero mass.

See also

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.

verticesan array of vertices, these are copied
countthe vertex count
prevVertexprevious vertex from chain that connects to the start
nextVertexnext vertex from chain that connects to the end

◆ CreateLoop()

void b2ChainShape::CreateLoop ( const b2Vec2 vertices,
int32  count 

Create a loop. This automatically adjusts connectivity.

verticesan array of vertices, these are copied
countthe vertex count

◆ GetChildCount()

int32 b2ChainShape::GetChildCount ( ) const
See also

Implements b2Shape.

◆ TestPoint()

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

This always return false.

See also

Implements b2Shape.

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