Box2D: b2EdgeShape Class Reference

| Box2D 2.4.1 A 2D physics engine for games

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

`#include <b2_edge_shape.h>`

Inheritance diagram for b2EdgeShape:

## Public Member Functions
void | SetOneSided (const b2Vec2 &v0, const b2Vec2 &v1, const b2Vec2 &v2, const b2Vec2 &v3)
void | SetTwoSided (const b2Vec2 &v1, const b2Vec2 &v2)
| Set this as an isolated edge. Collision is two-sided.
b2Shape * | Clone (b2BlockAllocator *allocator) const override
| Implement b2Shape.
int32 | GetChildCount () const override
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_vertex1
| These are the edge vertices.
b2Vec2 | m_vertex2
b2Vec2 | m_vertex0
| Optional adjacent vertices. These are used for smooth collision.
b2Vec2 | m_vertex3
bool | m_oneSided
| Uses m_vertex0 and m_vertex3 to create smooth collision.
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 line segment (edge) shape. These can be connected in chains or loops to other edge shapes. Edges created independently are two-sided and do no provide smooth movement across junctions.

## Member Function Documentation

## ◆ ComputeAABB()

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

See also
  b2Shape::ComputeAABB

Implements b2Shape.

## ◆ ComputeMass()

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

See also
  b2Shape::ComputeMass

Implements b2Shape.

## ◆ GetChildCount()

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

See also
  b2Shape::GetChildCount

Implements b2Shape.

## ◆ SetOneSided()

void b2EdgeShape::SetOneSided | ( | const b2Vec2 & | v0,
|  | const b2Vec2 & | v1,
|  | const b2Vec2 & | v2,
|  | const b2Vec2 & | v3
| ) |  |

Set this as a part of a sequence. Vertex v0 precedes the edge and vertex v3 follows. These extra vertices are used to provide smooth movement across junctions. This also makes the collision one-sided. The edge normal points to the right looking from v1 to v2.

## ◆ TestPoint()

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

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