Box2D 2.4.1
A 2D physics engine for games
b2EdgeShape Class Reference

#include <b2_edge_shape.h>

Inheritance diagram for b2EdgeShape:
b2Shape

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.
 
b2ShapeClone (b2BlockAllocator *allocator) const override
 Implement b2Shape. More...
 
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. More...
 
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
virtual b2ShapeClone (b2BlockAllocator *allocator) const =0
 Clone the concrete shape using the provided allocator. More...
 
Type GetType () const
 
virtual int32 GetChildCount () const =0
 Get the number of child primitives. More...
 
virtual bool TestPoint (const b2Transform &xf, const b2Vec2 &p) const =0
 
virtual bool RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const =0
 
virtual void ComputeAABB (b2AABB *aabb, const b2Transform &xf, int32 childIndex) const =0
 
virtual void ComputeMass (b2MassData *massData, float density) const =0
 

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

◆ Clone()

b2Shape * b2EdgeShape::Clone ( b2BlockAllocator allocator) const
overridevirtual

Implement b2Shape.

Implements b2Shape.

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

◆ RayCast()

bool b2EdgeShape::RayCast ( b2RayCastOutput output,
const b2RayCastInput input,
const b2Transform transform,
int32  childIndex 
) const
overridevirtual

Implement b2Shape.

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: