Box2D: b2Shape Class Reference

| Box2D 2.4.1 A 2D physics engine for games

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
b2Shape Class Referenceabstract

`#include <b2_shape.h>`

Inheritance diagram for b2Shape:

## Public Types
enum | Type { e_circle = 0 , e_edge = 1 , e_polygon = 2 , e_chain = 3 , e_typeCount = 4 }

## Public Member Functions
virtual b2Shape * | Clone (b2BlockAllocator *allocator) const =0
| Clone the concrete shape using the provided allocator.
Type | GetType () const
virtual int32 | GetChildCount () const =0
| Get the number of child primitives.
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
Type | m_type
float | m_radius

## Detailed Description

A shape is used for collision detection. You can create a shape however you like. Shapes used for simulation in b2World are created automatically when a b2Fixture is created. Shapes may encapsulate a one or more child shapes.

## Member Function Documentation

## ◆ Clone()

virtual b2Shape * b2Shape::Clone | ( | b2BlockAllocator * | allocator | ) | const
| pure virtual

Clone the concrete shape using the provided allocator.

Implemented in b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

## ◆ ComputeAABB()

virtual void b2Shape::ComputeAABB | ( | b2AABB * | aabb,
|  | const b2Transform & | xf,
|  | int32 | childIndex
| ) |  | const
| pure virtual

Given a transform, compute the associated axis aligned bounding box for a child shape.

Parameters

  aabb | returns the axis aligned box.
  xf | the world transform of the shape.
  childIndex | the child shape

Implemented in b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

## ◆ ComputeMass()

virtual void b2Shape::ComputeMass | ( | b2MassData * | massData,
|  | float | density
| ) |  | const
| pure virtual

Compute the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin.

Parameters

  massData | returns the mass data for this shape.
  density | the density in kilograms per meter squared.

Implemented in b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

## ◆ GetChildCount()

virtual int32 b2Shape::GetChildCount | ( |  | ) | const
| pure virtual

Get the number of child primitives.

Implemented in b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

## ◆ GetType()

b2Shape::Type b2Shape::GetType | ( |  | ) | const
| inline

Get the type of this shape. You can use this to down cast to the concrete shape.

Returns
  the shape type.

## ◆ RayCast()

virtual bool b2Shape::RayCast | ( | b2RayCastOutput * | output,
|  | const b2RayCastInput & | input,
|  | const b2Transform & | transform,
|  | int32 | childIndex
| ) |  | const
| pure virtual

Cast a ray against a child shape.

Parameters

  output | the ray-cast results.
  input | the ray-cast input parameters.
  transform | the transform to be applied to the shape.
  childIndex | the child shape index

Implemented in b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

## ◆ TestPoint()

virtual bool b2Shape::TestPoint | ( | const b2Transform & | xf,
|  | const b2Vec2 & | p
| ) |  | const
| pure virtual

Test a point for containment in this shape. This only works for convex shapes.

Parameters

  xf | the shape world transform.
  p | a point in world coordinates.

Implemented in b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

## Member Data Documentation

## ◆ m_radius

float b2Shape::m_radius

Radius of a shape. For polygonal shapes this must be b2_polygonRadius. There is no support for making rounded polygons.

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

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